httpreferenciadesarrollo

Tabla Completa de Códigos de Estado HTTP (1xx a 5xx)

Rafael Andrade

Por Rafael Andrade· Desenvolvedor

·5 min de lectura

Tabla Completa de Códigos de Estado HTTP (1xx a 5xx)

Los códigos de estado HTTP son el lenguaje que usan los servidores para responder a las solicitudes. Entender lo que significa cada código es fundamental para cualquier desarrollador, DevOps o diseñador que trabaje con APIs o aplicaciones web.

Cómo Se Organizan los Códigos

Todos los códigos HTTP tienen 3 dígitos. El primer dígito define la categoría:

| Rango | Categoría | Significado | |---|---|---| | 1xx | Informativo | La solicitud fue recibida y está siendo procesada | | 2xx | Éxito | La solicitud fue recibida, entendida y aceptada | | 3xx | Redirección | Se necesitan más acciones para completar la solicitud | | 4xx | Error del cliente | La solicitud contiene sintaxis incorrecta o no puede atenderse | | 5xx | Error del servidor | El servidor falló al atender una solicitud aparentemente válida |


Códigos 1xx: Informativos

100 Continue

El servidor recibió los encabezados de la solicitud y el cliente puede continuar enviando el cuerpo.

101 Switching Protocols

El servidor acepta cambiar de protocolo según lo solicitado por el cliente (ej.: HTTP a WebSocket).

102 Processing

El servidor está procesando la solicitud pero aún no tiene respuesta disponible (WebDAV).

103 Early Hints

Permite que el cliente empiece a precargar recursos mientras el servidor prepara la respuesta completa.


Códigos 2xx: Éxito

200 OK

La solicitud fue exitosa. El significado depende del método HTTP utilizado.

201 Created

La solicitud fue exitosa y se creó un nuevo recurso. Se usa en respuesta a solicitudes POST y PUT.

202 Accepted

La solicitud fue aceptada pero aún no se ha procesado. Común en procesamientos asíncronos.

204 No Content

La solicitud fue exitosa pero no hay contenido que devolver. Común en DELETE y PUT.

206 Partial Content

El servidor está entregando solo parte del recurso (usado en descargas con rango o streaming de video).


Códigos 3xx: Redirección

301 Moved Permanently

El recurso se movió permanentemente a una nueva URL. Los buscadores transfieren la autoridad del enlace a la nueva dirección.

302 Found

Redirección temporal. El cliente debe usar la URL original en las próximas solicitudes.

304 Not Modified

Indica que el recurso no ha cambiado desde la última solicitud. El cliente puede usar su versión en caché.

307 Temporary Redirect

Igual que el 302, pero garantiza que el método HTTP original no se cambiará.

308 Permanent Redirect

Igual que el 301, pero garantiza que el método HTTP original no se cambiará.


Códigos 4xx: Error del Cliente

400 Bad Request

La solicitud está mal formada, es inválida o no puede procesarse. Revisa el formato de los datos enviados.

401 Unauthorized

Se requiere autenticación. En la práctica significa "no autenticado": el cliente no proporcionó credenciales válidas.

403 Forbidden

El servidor entendió la solicitud pero se niega a atenderla. El cliente está autenticado pero no tiene permiso.

404 Not Found

El recurso solicitado no se encontró. Puede ser temporal o permanente.

405 Method Not Allowed

El método HTTP usado (ej.: DELETE) no está soportado para ese endpoint.

408 Request Timeout

El servidor cerró la conexión por inactividad del cliente.

409 Conflict

La solicitud entra en conflicto con el estado actual del recurso (ej.: intento de crear un duplicado).

410 Gone

El recurso existió pero fue eliminado de forma permanente. A diferencia del 404, indica una eliminación intencional.

413 Content Too Large

El cuerpo de la solicitud supera el límite configurado en el servidor.

422 Unprocessable Content

La solicitud está bien formada pero contiene errores semánticos (muy usado en APIs REST para validación de datos).

429 Too Many Requests

El cliente envió demasiadas solicitudes en poco tiempo (limitación de velocidad).


Códigos 5xx: Error del Servidor

500 Internal Server Error

Error genérico del servidor. Algo salió mal sin encajar en ningún otro código 5xx.

501 Not Implemented

El servidor no soporta la funcionalidad necesaria para atender la solicitud.

502 Bad Gateway

El servidor, actuando como gateway, recibió una respuesta inválida del upstream.

503 Service Unavailable

El servidor está temporalmente no disponible por sobrecarga o mantenimiento.

504 Gateway Timeout

El servidor, actuando como gateway, no recibió respuesta del upstream a tiempo.

507 Insufficient Storage

El servidor no tiene espacio suficiente para completar la solicitud (WebDAV).


Consejos Prácticos

Usa 201 en lugar de 200 al crear recursos: devolver 201 Created con el encabezado Location apuntando al nuevo recurso es la forma semánticamente correcta de responder a un POST exitoso.

401 vs 403: 401 significa "necesitas autenticarte", 403 significa "estás autenticado pero no tienes permiso". Confundirlos es un error clásico.

Usa siempre 422 para errores de validación: muchas APIs todavía usan 400 para todo, pero 422 es semánticamente más correcto cuando el problema está en los datos enviados, no en el formato de la solicitud.

Caché y 304: implementar soporte para ETag e If-None-Match permite que los clientes usen la caché correctamente, reduciendo ancho de banda y latencia.

Preguntas Frecuentes

¿Cuál es la diferencia entre 404 y 410? 404 significa "no encontrado ahora"; puede ser temporal. 410 significa "eliminado intencionalmente y no vuelve". Los buscadores los tratan diferente: eliminan el 410 del índice más rápidamente.

¿Por qué mi API devuelve 200 incluso cuando hay un error? Patrón llamado "200 OK with error body": muy común en APIs antiguas. Se considera mala práctica porque rompe el contrato del protocolo HTTP y dificulta el uso de herramientas de monitoreo.

¿Existe el código 418? Sí, 418 I'm a teapot es real. Fue definido en el RFC 2324 como una broma del Día de los Inocentes de 1998. Algunos servidores lo implementan como easter egg.


¿Trabajando con APIs? El Formateador JSON de UtilWave te ayuda a visualizar y validar los cuerpos de solicitud y respuesta con un solo clic.

Herramienta relacionada

Formateador JSON

Accede gratis, sin registro.