estoy construyendo un servicio web que se utiliza, en este caso particular, para solicitar información sobre un usuario.¿Qué código de Http debo devolver para "Cosa no encontrada"?
Digamos que, por el bien del argumento, que el éxito de las operaciones de búsqueda web es:
GET /patrons/619 HTTP/1.1
Si se encuentra el patrón, vuelvo código 200:
HTTP/1.1 200 OK
Si se omite, o dar un número de cuenta que no es un número, vuelvo 400. Por ejemplo, las siguientes solicitudes malas:
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/G619 HTTP/1.1
GET /patrons/kirsten%20guyer HTTP/1.1
todos vuelven de error 400 (Bad Request), ej .:
HTTP/1.1 400 Invalid patron number
quiero tener un código de estado para patrón no encontrado, devuelve como el código de estado HTTP. Por ejemplo:
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
he pensado en utilizar 404 (no encontrado), que es una respuesta válida (el recurso solicitado fue, realmente y verdaderamente, no se encuentra.) Pero me temo la gente depurando podría pensar que significa que deletreó /patrons/
mal.
¿Alguien puede pensar en otro código de estado http que podría usar?
Actualización: estoy echando un vistazo a
204 No Content
The server successfully processed the request, but is not returning any content.
lo que dice la verdad?
No olvide que no todos los servidores HTTP ofrecen contenido HTML. Si se pide a un servidor Web IIS para un recurso llamado:
GET /MyStartPage.html HTTP/1.1
A continuación, el servidor HTTP tiene que decidir qué responder con. En la mayoría de los servidores web, un recurso llamado /MisPaginaPágina.html corresponde a un archivo ubicado en el disco duro.
Mientras Stackoverflow hace:
GET /posts/1027301 HTTP/1.1
Lo cual, si ese recurso no existe, el servidor web debe (con razón) de retorno 404.
No creo que un error de 200 niveles sea apropiado tampoco, considere las explicaciones en W3 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – defines