Quali codici di stato HTTP sono veramente OK?

1

Sto scrivendo un'applicazione per segnalare all'utente (dev) quando il loro sito fallisce . E cosa intendo per fail che non è funzionale o ha bisogno di segnalare il problema agli sviluppatori.
Capisco che il codice di stato 2XX significa "Success" in base a wiki . Ma lo fa davvero? Ho accesso al mio sito web una volta e restituito 204 "Nessun contenuto", che per me non è funzionale. Quindi la domanda è, quale è l'elenco dei codici di stato restituiti Dovrebbe essere considerato "il sito web è funzionale"?

    
posta wtsang02 08.02.2013 - 02:53
fonte

3 risposte

11

Ogni codice è accettabile in alcune circostanze, ma indica un problema in altre circostanze.

Prendi 404. Potrebbe indicare:

  • che un link sul tuo sito web è rotto (che in realtà è un problema che potresti voler risolvere),
  • che il client sta tentando deliberatamente di interrompere il sito Web (anche questo è un problema, ma dovrebbe essere incluso nei report di sicurezza),
  • che da qualche parte, qualche sito web ha un link interrotto o che una persona ha scritto male un indirizzo (che non importa, dal momento che non puoi farci niente),
  • o che la pagina non è destinata ad esistere (che è una situazione prevista e non dovrebbe preoccupare nessuno). Esempio: /wpad.dat .

Prendi 200. Potrebbe indicare:

  • un successo,
  • o che il tuo sistema di sicurezza non funzioni più e non proibisce l'accesso ad alcune pagine Web riservate agli ospiti (l'unica risposta accettabile è 401 Unauthorized ).

Se vuoi segnalare problemi agli sviluppatori, fallo nel modo giusto: attraverso la registrazione e la gestione delle eccezioni , non attraverso qualcosa che non è mai stato concepito, come i codici di stato HTTP.

    
risposta data 08.02.2013 - 03:50
fonte
3

Dipende da cosa esattamente stai controllando. A seconda di cosa controlli un 204 potrebbe essere accettabile o potrebbe essere un errore.

Se stai controllando un sito web, è probabile che 200 OK sia l'unica risposta accettabile. (Dopo aver seguito i reindirizzamenti). Se stai controllando un'API o qualcosa che non è destinato a essere visualizzato in un browser, qualsiasi codice 2xx può essere accettabile.

    
risposta data 08.02.2013 - 02:55
fonte
1

I codici di errore che indicano che c'è qualcosa di sbagliato nel servizio web stesso sono gli errori 5xx . Quelli e solo quelli. Restituire qualcos'altro dovrebbe indicare che il servizio web funziona correttamente. Gli errori 4xx indicano l'errore nella richiesta, non sul server.

    
risposta data 09.02.2013 - 21:08
fonte