Inviare il codice HTTP 404 per le risorse non presenti

di Daniele Bochicchio, 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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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