sto costruendo un servizio web che viene utilizzato, in questo caso particolare, per chiedere informazioni su un utente.Quale codice Http devo restituire per "Cosa non trovata"?
Diciamo che, per amor di discussione, che il colpo di ricerca web è:
GET /patrons/619 HTTP/1.1
Se viene trovato il patrono, torno codice 200:
HTTP/1.1 200 OK
Se si omette, o dare un numero di conto che non è un numero, torno 400. Ad esempio, le seguenti richieste cattivi:
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/G619 HTTP/1.1
GET /patrons/kirsten%20guyer HTTP/1.1
tutto il ritorno errore 400 (Richiesta non valida), ad es .:
HTTP/1.1 400 Invalid patron number
voglio avere un codice di stato per patron non trovato, restituito come il codice di stato HTTP. Per esempio:
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
ho pensato di usare 404 (Not Found), che è una valida risposta (la risorsa richiesta era, realmente e veramente, non trovato.) Ma ho paura persone che eseguono il debugging potrebbero pensare che ciò significa che hanno digitato /patrons/
errato.
Qualcuno può pensare a un altro codice di stato http che potrei usare?
Aggiornamento: sto eyeballing
204 No Content
The server successfully processed the request, but is not returning any content.
Cosa dici?
Non dimenticare, che non tutti i server HTTP servono contenuti HTML. Se viene richiesto un server Web IIS per una risorsa denominata:
GET /MyStartPage.html HTTP/1.1
Quindi il server HTTP deve decidere con cosa rispondere. Sulla maggior parte dei server Web, una risorsa denominata /MyStartPage.html corrisponde a un file che si trova sul disco rigido.
Mentre StackOverflow fa:
GET /posts/1027301 HTTP/1.1
Il che, se tale risorsa non esiste, il web-server dovrebbe (a ragione) di ritorno 404.
Non credo che un errore a 200 livelli sia appropriato, considerate le spiegazioni su W3 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – defines