Domanda

Sto costruendo un semplice server HTTP per un progetto. La maggior parte dei siti Web ha pagine di errore 404 personalizzate. A volte, però, vedrai Firefox che sputa una pagina 404 generica (o 405, ecc ...). Come decide cosa fare? Quale dovrebbe essere la risposta HTTP? È " HTTP / 1.0 404 NON TROVATO " abbastanza?

Grazie

È stato utile?

Soluzione

Quindi, Firefox non mostrerà una pagina di errore 404 generica nella maggior parte dei casi; stai pensando a Internet Explorer, che ignora la pagina 404 di un sito Web se è al di sotto di una certa dimensione e visualizza la sua.

Altri suggerimenti

Se il server non riesce a trovare la risorsa richiesta (ad es. una pagina Web), invia un HTTP / 1.0 404 NON TROVATO nella sezione dell'intestazione HTTP.

I server possono mappare una pagina di errore per questo errore, in modo da poter ottenere una pagina di errore leggibile. I browser possono anche mappare una propria pagina di errore, in modo da poter visualizzare un messaggio di errore 404 specifico del browser.

Puoi vedere il codice di errore nel campo di stato nei file di registro .

Puoi reindirizzare il tuo utente a una pagina specifica con questa struttura:

<HTML>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="5; URL=not404.htm">
</head>
</HTML>

Vedi i dettagli su Benvenuto in 404 pagine di errore .com

È perfettamente valido restituire un corpo html con un codice di risposta 404. Se non viene fornito alcun corpo, il browser mostrerà una pagina predefinita.

  1. Se invii solo HTTP / 1.0 404 NON TROVATO , verrà visualizzato il valore predefinito del browser.
  2. Se aggiungi un corpo alla risposta, il browser lo utilizzerà principalmente.

Se si sta creando un server HTTP, si consiglia di esaminare la RFC che descrive il protocollo: http://www.faqs.org/rfcs/rfc2616.html

Per il codice di stato 404 dice:

  

Il server non ha trovato nulla   corrispondente all'URI di richiesta. No
  viene indicato se il   la condizione è temporanea o
  permanente. Il codice di stato 410 (andato)   DOVREBBE essere utilizzato se il server lo sa,   attraverso alcuni configurabili internamente   meccanismo, che una vecchia risorsa è   permanentemente non disponibile e non ha   indirizzo di spedizione. Questo stato   il codice è comunemente usato quando il server   non vuole rivelare esattamente il perché   la richiesta è stata rifiutata o quando   nessuna altra risposta è applicabile.

Non puoi controllare come il browser tratterà ogni codice di stato, dovresti fare affidamento sul suo buon comportamento.

Detto questo, potresti trarre vantaggio dall'utilizzo di uno dei server HTTP esistenti. Guarda questa domanda su come creare un server HTTP in C o C ++ pubblicato qualche giorno fa,

Di solito è impostato nel server web, ovvero: quando il server ottiene un 404, fare riferimento a questa pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top