Inviare il codice HTTP 404 per le risorse non presenti

di Daniele Bochicchio

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
TrackBack scrive:
17/09/2004 ore 16.26
TrackBack scrive:
16/09/2004 ore 11.03
TrackBack scrive:
15/09/2004 ore 23.32

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

Nella stessa categoria
I più letti del mese
TagCloud
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, 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 AJAX, ASP.NET MVC, ASPItalia.com, Cache, CSS, Custom Control, Database, Databinding, Datagrid, Deployment, Dynamic Data Control, HttpHandler, HttpModule, HttpRuntime, IIS, ISAPI, Javascript, LINQ, LINQ to SQL, LogParser, Master Pages, Media Center, Membership API, Microsoft Expression, Mono, MySQL, Object Oriented Programming, Off Topic, Office, Pattern, PDC 2008, Profile API, Provider Model, Report, Roles API, Security, Silverlight, Silverlight 2.0, SQL Server, User Control, Visual Studio, Web Service, Windows 7, Windows CardSpace, Windows Client, Windows Communication Foundation, Windows Live Services, Windows Mobile, Windows Presentation Foundation, Windows Server, Windows Vista, WinFS, XAML, XBox 360, XHTML, XML, XSLT
BLOG INFO
  • 862 post, 375 commenti, 185 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA