# Códigos de estado HTTP
Las API REST usan la parte de la línea de estado de un mensaje de respuesta HTTP para informar a los clientes del resultado general de su solicitud.
HTTP define cuarenta códigos de estado estándar que se pueden usar para transmitir los resultados de la solicitud de un cliente. Los códigos de estado se dividen en las cinco categorías que se presentan a continuación.
CATEGORÍA | DESCRIPCIÓN |
---|---|
1xx: informativo | Comunica la transferencia de información a nivel de protocolo. |
2xx: éxito | Indica que la solicitud del cliente fue aceptada con éxito. |
3xx: redireccionamiento | Indica que el cliente debe tomar alguna medida adicional para completar su solicitud. |
4xx: error del cliente | Esta categoría de códigos de estado de error señala a los clientes. |
5xx: error del servidor | El servidor asume la responsabilidad de estos códigos de estado de error. |
Ahora, observe el subconjunto de códigos que se aplican principalmente al diseño de una API REST, con más detalle.
# 200 (OK)
Indica que la API REST realizó con éxito cualquier acción solicitada por el cliente y que no es apropiado más código específico en la serie 2xx.
A diferencia del código de estado 204, una respuesta 200 debe incluir un cuerpo de respuesta. La información devuelta con la respuesta depende del método utilizado en la solicitud, por ejemplo:
- GET una entidad correspondiente al recurso solicitado se envía en la respuesta;
- HEAD los campos de encabezado de entidad correspondientes al recurso solicitado se envían en la respuesta sin ningún cuerpo de mensaje;
- POST una entidad que describa o contenga el resultado de la acción;
- TRACE una entidad que contiene el mensaje de solicitud tal como lo recibió el servidor final.
# 201 (Created)
Una API REST responde con el código de estado 201 cada vez que se crea un recurso dentro de una colección. También puede haber ocasiones en que se cree un nuevo recurso como resultado de alguna acción del controlador, en cuyo caso 201 también sería una respuesta apropiada.
# 204 (No Content)
El código 204 de estado se envía generalmente en respuesta a una PUT, POST o DELETE la solicitud cuando la API REST se niega a devolver cualquier mensaje de estado o representación en el cuerpo del mensaje de respuesta.
# 304 (Not Modified)
Este código de estado es similar a 204 ("Sin contenido") en que el cuerpo de la respuesta debe estar vacío. La distinción crítica es que 204 se usa cuando no hay nada que enviar en el cuerpo, mientras que 304 se usa cuando el recurso no se ha modificado desde la versión especificada por los encabezados de solicitud If-Modified-Since o If-None-Match.
# 400 (Bad Request)
400 es el estado de error genérico del lado del cliente, que se utiliza cuando no es apropiado ningún otro código de error 4xx. Los errores pueden ser sintaxis de solicitud con formato incorrecto, parámetros de mensaje de solicitud no válidos o enrutamiento de solicitud engañoso, etc.
El cliente NO DEBE repetir la solicitud sin modificaciones.
# 401 (Unauthorized)
Una respuesta de error 401 indica que el cliente intentó operar en un recurso protegido sin proporcionar la autorización adecuada. Puede haber proporcionado las credenciales incorrectas o ninguna. La respuesta debe incluir un campo de encabezado WWW-Authenticate que contenga un desafío aplicable al recurso solicitado.
El cliente PUEDE repetir la solicitud con un campo de encabezado de autorización adecuado. Si la solicitud ya incluía credenciales de autorización, la respuesta 401 indica que se ha rechazado la autorización para esas credenciales. Si la respuesta 401 contiene el mismo desafío que la respuesta anterior, y el agente de usuario ya ha intentado la autenticación al menos una vez, entonces el usuario DEBE presentar la entidad que se le dio en la respuesta, ya que esa entidad podría incluir información de diagnóstico relevante.
# 403 (Forbidden)
Una respuesta de error 403 indica que la solicitud del cliente se formó correctamente, pero la API REST se niega a cumplirla, es decir, el usuario no tiene los permisos necesarios para el recurso. Una respuesta 403 no es un caso de credenciales de cliente insuficientes; eso sería 401 ("No autorizado").
La autenticación no ayudará, y la solicitud NO DEBE repetirse. A diferencia de una respuesta 401 no autorizada, la autenticación no hará ninguna diferencia.
# 404 (Not Found)
El código de estado de error 404 indica que la API REST no puede asignar el URI del cliente a un recurso, pero puede estar disponible en el futuro. Se permiten solicitudes posteriores del cliente.
# 500 (Internal Server Error)
500 es la respuesta genérica de error REST API. La mayoría de los marcos web responden automáticamente con este código de estado de respuesta cada vez que ejecutan un código de controlador de solicitudes que genera una excepción.
Un error 500 nunca es culpa del cliente y, por lo tanto, es razonable que el cliente vuelva a intentar la misma solicitud que activó esta respuesta y espera obtener una respuesta diferente.
La respuesta de la API es el mensaje de error genérico, dado cuando se encontró una condición inesperada y no es adecuado un mensaje más específico.