Inviare il codice HTTP 404 per le risorse non presenti

Daniele Bochicchio

di , in ASP.NET,

Leggendo questo post di Andrea mi è venuto in mente un piccolo addendum al suo esempio, utilizzabile in un caso ben delimitato.

Di default quando ASP.NET va in errore 404 (risorsa non trovata) non invia al browser il codice HTTP corrispondente. La stessa cosa in realtà (non) la fa anche Classic ASP. Se mettete su un sistema che cerca broken link analizzando il codice di risposta del web server, con una pagina personalizzata semplicemente non funzionerà.

E' un'operazione che infatti è demandata allo sviluppatore, anche perchè non è detto che se una risorsa non esiste fisicamente su disco o virtualmente tramite mapping il risultato sia un 404, come in questo esempio, per aggiustare automaticamente l'indirizzo, o questo vecchio url che rimanda in automatico a questo per evitare broken link.

E quindi il succo del discorso è che comunicare all'user agent che visita la pagina (che può non essere un browser) che la risorsa in realtà non esiste più, si può inserire nell'HttpModule utilizzato per l'errore (o nel global.asax o nella pagina di personalizzazione) questo semplice codice:

Response.StatusCode = 404;

Lo so che essere compatibili con il mondo (e con gli standard) richiede sacrificio, ma essere buoni cittadini del web vuol dire anche onorare a dovere i protocolli e gli standard esistenti ;)

Commenti
Inviare il codice HTTP 404 per le risorse non presenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese
TAG CLOUD
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, .NET Micro Framework, 10annidi, ADO.NET, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 3.5, ASP.NET 3.5 per tutti, ASP.NET 4.0, ASP.NET 4.0 Guida completa, ASP.NET AJAX, ASP.NET Charting, ASP.NET MVC, ASPItalia.com, C# 4 Guida completa, Cache, Community Days 2010, Community Days 2012, CSS, Custom Control, Database, Databinding, Datagrid, Deployment, Dynamic Data Control, Entity Framework, Expression Blend, HTML 5 Espresso, HTML5, HttpHandler, HttpModule, HttpRuntime, IIS, ISAPI, Javascript, jQuery, LINQ, LINQ to Entities, LINQ to SQL, LogParser, Master Pages, Media Center, Membership API, Metro, Microsoft Expression, MIX11, Model Virtual Casting, Mono, MySQL, Object Oriented Programming, Off Topic, Office, ORM, Parallel FX, Pattern, PDC 2008, Profile API, Provider Model, Real Code Day 6, Report, Roles API, Security, SEO, Silverlight, Silverlight 2.0, Silverlight 3.0, Silverlight 3.0 Guida Completa, Silverlight 4.0, SQL Server, User Control, Visual Basic 2010 Guida completa, Visual Studio, WCF Data Services, WCF RIA Services, Web Service, web.config, Windows 7, Windows 8, Windows Azure, Windows Client, Windows Communication Foundation, Windows Identity Foundation, Windows Live Services, Windows Phone, Windows Phone - il libro, Windows Phone 7, Windows Phone 7.1, Windows Presentation Foundation, Windows Server, Windows Vista, WinRT, XAML, XBox 360, XHTML, XML, XNA, XSLT
BLOG INFO
  • 1.019 post, 438 commenti, 195 trackback
  • Feed blog: RSS Atom
In evidenza