Códigos de Estado HTTP en APIs REST
Cuando trabajamos con APIs REST, los códigos de estado HTTP son esenciales para indicar el resultado de una solicitud. Estos códigos permiten que los clientes (navegadores, aplicaciones, otros servidores) comprendan si una solicitud fue exitosa, tuvo un error o requiere alguna acción adicional.
En este artículo, exploraremos todos los códigos de estado HTTP, organizados por categorías, con ejemplos y cuándo usarlos correctamente.
¿Qué son los códigos de estado HTTP?
Los códigos de estado HTTP son respuestas estándar que los servidores envían después de procesar una solicitud. Cada código consta de tres dígitos y pertenece a una de cinco categorías:
✅ 1xx – Informativos: Comunicación en curso.
✅ 2xx – Éxito: La solicitud se procesó correctamente.
✅ 3xx – Redirecciones: La solicitud requiere acciones adicionales.
✅ 4xx – Errores del cliente: El problema está en la solicitud enviada.
✅ 5xx – Errores del servidor: El problema está en el servidor.
Códigos de estado 1xx – Respuestas Informativas
Estos códigos indican que el servidor recibió la solicitud y la está procesando, pero no hay una respuesta final aún.
Código | Significado | Cuándo usarlo |
---|---|---|
100 Continue | El servidor recibió los encabezados y espera el cuerpo de la solicitud. | Se usa en cargas grandes para confirmar que el servidor aceptará la solicitud antes de enviarla completamente. |
101 Switching Protocols | El servidor acepta cambiar a un protocolo diferente, como WebSockets. | Se usa cuando un cliente solicita cambiar a un protocolo diferente con Upgrade . |
102 Processing | El servidor ha recibido la solicitud y la está procesando, pero aún no hay respuesta. | Se usa en operaciones largas, como procesamiento de datos. |
103 Early Hints | El servidor envía encabezados preliminares antes de la respuesta final. | Se usa para optimizar la carga de recursos antes de recibir la respuesta completa. |
Códigos de estado 2xx – Respuestas de Éxito
Estos códigos indican que la solicitud fue procesada correctamente.
Código | Significado | Cuándo usarlo |
---|---|---|
200 OK | La solicitud fue exitosa y devuelve el recurso solicitado. | Se usa en GET , POST , PUT , PATCH , y DELETE si la respuesta tiene contenido. |
201 Created | Un recurso nuevo fue creado exitosamente. | Se usa en POST cuando se crea un nuevo recurso. |
202 Accepted | La solicitud fue aceptada pero aún no procesada. | Se usa cuando el procesamiento es asíncrono. |
203 Non-Authoritative Information | La respuesta fue obtenida de un origen diferente al servidor principal. | Se usa en proxys o cachés que devuelven información diferente a la esperada. |
204 No Content | La solicitud fue exitosa, pero no hay contenido en la respuesta. | Se usa en DELETE cuando el recurso fue eliminado. |
205 Reset Content | La solicitud fue exitosa y el cliente debe resetear la vista. | Se usa en formularios o interfaces que requieren reiniciarse después de una acción. |
206 Partial Content | Se devuelve solo una parte del recurso solicitado. | Se usa en cargas de archivos cuando un cliente solicita un rango específico de bytes. |
Códigos de estado 3xx – Redirecciones
Estos códigos indican que la solicitud requiere acciones adicionales, como redirigir al cliente a otra URL.
Código | Significado | Cuándo usarlo |
---|---|---|
300 Multiple Choices | Hay múltiples opciones para el recurso solicitado. | Se usa cuando un recurso tiene múltiples representaciones. |
301 Moved Permanently | El recurso fue movido permanentemente a otra URL. | Se usa en cambios de URL permanentes. |
302 Found | La URL ha cambiado temporalmente. | Se usa cuando un recurso se mueve temporalmente. |
303 See Other | El recurso solicitado se encuentra en otra URL. | Se usa en POST para redirigir a otra URL después de una acción exitosa. |
304 Not Modified | Indica que el recurso no ha cambiado desde la última vez que fue solicitado. | Se usa en caché para optimizar tráfico. |
307 Temporary Redirect | Similar a 302 , pero el método HTTP no cambia. |
Se usa en redirecciones temporales. |
308 Permanent Redirect | Similar a 301 , pero conserva el método HTTP. |
Se usa en redirecciones permanentes. |
Códigos de estado 4xx – Errores del Cliente
Estos códigos indican que el error proviene del cliente (navegador o aplicación).
Código | Significado | Cuándo usarlo |
---|---|---|
400 Bad Request | La solicitud tiene errores de sintaxis o parámetros inválidos. | Se usa cuando faltan datos obligatorios o hay formato incorrecto. |
401 Unauthorized | La solicitud requiere autenticación. | Se usa cuando el usuario no está autenticado. |
402 Payment Required | Requiere pago para acceder al recurso. | Se usa en sistemas con contenido de pago. |
403 Forbidden | El usuario no tiene permisos para acceder al recurso. | Se usa cuando el usuario no tiene autorización suficiente. |
404 Not Found | El recurso solicitado no existe. | Se usa cuando la URL no corresponde a ningún recurso. |
405 Method Not Allowed | El método HTTP usado no es válido para este recurso. | Se usa cuando un POST o PUT no están permitidos en una ruta específica. |
409 Conflict | La solicitud genera un conflicto con el estado actual del servidor. | Se usa en POST cuando se intenta crear un recurso duplicado. |
Códigos de estado 5xx – Errores del Servidor
Estos códigos indican que el servidor falló al procesar la solicitud.
Código | Significado | Cuándo usarlo |
---|---|---|
500 Internal Server Error | Error interno en el servidor. | Se usa cuando ocurre una falla inesperada en el backend. |
501 Not Implemented | El servidor no reconoce el método de la solicitud. | Se usa cuando el servidor no tiene soporte para una funcionalidad. |
502 Bad Gateway | El servidor recibió una respuesta inválida de otro servidor. | Se usa cuando un servidor actúa como proxy y falla la comunicación con el backend. |
503 Service Unavailable | El servidor está sobrecargado o en mantenimiento. | Se usa cuando la API está temporalmente fuera de servicio. |
504 Gateway Timeout | El servidor no recibió respuesta a tiempo de otro servicio. | Se usa cuando una API externa tarda demasiado en responder. |
505 HTTP Version Not Supported | La versión de HTTP usada en la solicitud no es compatible. | Se usa en servidores que solo soportan versiones específicas de HTTP. |
Últimas publicaciones
Suscribete a nuestro Newsletter y recibe información para mejorar tus conocimientos y posibilidad de conseguir un mejor empleo
Subscribete en LinkedIn