¿Qué son los códigos de estado HTTP?

Los códigos de estado HTTP son números de tres dígitos que los servidores devuelven para indicar el resultado de la solicitud de un cliente. Este artículo explica las cinco clases de códigos de estado (1xx a 5xx), los códigos más comunes que los desarrolladores encuentran y las mejores prácticas para usarlos en aplicaciones web y APIs.

Los códigos de estado HTTP son números de tres dígitos que los servidores devuelven para indicar el resultado de la solicitud de un cliente. Están definidos en la especificación HTTP y agrupados en cinco clases por el primer dígito, cada una representando un tipo diferente de respuesta.

Cómo funcionan los códigos de estado HTTP

Cuando un cliente envía una solicitud HTTP a un servidor, el servidor la procesa y devuelve una respuesta con un código de estado y, opcionalmente, un cuerpo de mensaje. El código de estado indica al cliente si la solicitud fue exitosa, falló o necesita acción adicional.

Cliente Servidor
│ │
├────── Solicitud HTTP ───────►│
│ ├── Procesa solicitud
│ │
│◄───── Respuesta HTTP ────────┤
│ 200 OK │
│ 404 Not Found │
│ 500 Error Interno │

Clases de códigos de estado

ClaseRangoSignificadoEjemplo
1xx100-199Informativo101 Switching Protocols
2xx200-299Éxito200 OK
3xx300-399Redirección301 Moved Permanently
4xx400-499Error del cliente404 Not Found
5xx500-599Error del servidor500 Internal Server Error
Mejor paraIdentificar categoríaTriaje rápidoDepuración inicial

Códigos de estado comunes

CódigoNombreSignificado
200OKSolicitud exitosa
201CreatedRecurso creado exitosamente
301Moved PermanentlyRecurso tiene nueva URL permanente
400Bad RequestSintaxis de solicitud inválida
401UnauthorizedAutenticación requerida
403ForbiddenAutenticado pero sin permiso
404Not FoundRecurso no encontrado
429Too Many RequestsLímite de tasa excedido
500Internal Server ErrorCondición inesperada en el servidor
502Bad GatewayServidor upstream inválido
503Service UnavailableServidor temporalmente sobrecargado
504Gateway TimeoutServidor upstream no respondió a tiempo

Cuándo usar códigos de estado HTTP

Use códigos de estado HTTP estándar cuando necesite:

  • Indicar éxito o fallo de la solicitud claramente
  • Permitir manejo automatizado por clientes y proxies
  • Seguir convenciones de APIs REST
  • Integrar con herramientas de monitoreo y alertas
  • Mantener compatibilidad con clientes y bibliotecas HTTP

Cuándo no usar códigos de estado HTTP

No dependa únicamente de códigos de estado cuando necesite:

  • Transmitir contexto detallado de errores (use el cuerpo de la respuesta)
  • Soportar protocolos no HTTP (gRPC, WebSocket)
  • Comunicar semántica de error específica de la aplicación sin cuerpo de respuesta

Señales de que necesita entender los códigos de estado HTTP

  • Integraciones de API devuelven errores inesperados
  • Paneles de monitoreo muestran picos de 4xx o 5xx
  • Usuarios reportan páginas rotas o transacciones fallidas
  • Depuración de solicitudes de red en DevTools del navegador
  • Configuración de verificaciones de salud en balanceadores de carga

Referencia de códigos de estado

1xx Informativo:

  • 100 Continue: Servidor recibió cabeceras, cliente debe enviar cuerpo
  • 101 Switching Protocols: Actualizando a WebSocket u otro protocolo

2xx Éxito:

  • 200 OK: Respuesta estándar de éxito
  • 201 Created: Nuevo recurso creado (POST)
  • 202 Accepted: Solicitud aceptada para procesamiento asíncrono
  • 204 No Content: Éxito sin cuerpo de respuesta
  • 206 Partial Content: Solicitud de rango parcial atendida

3xx Redirección:

  • 301 Moved Permanently: Recurso movido, actualice solicitudes futuras
  • 302 Found: Redirección temporal
  • 304 Not Modified: Versión en caché aún es válida
  • 307 Temporary Redirect: Mismo método, redirección temporal
  • 308 Permanent Redirect: Mismo método, redirección permanente

4xx Error del Cliente:

  • 400 Bad Request: Sintaxis o parámetros inválidos
  • 401 Unauthorized: Credenciales ausentes o inválidas
  • 403 Forbidden: Credenciales válidas pero permiso insuficiente
  • 404 Not Found: Recurso no existe en esta URL
  • 405 Method Not Allowed: Método HTTP incorrecto para este endpoint
  • 408 Request Timeout: Cliente no produjo solicitud a tiempo
  • 409 Conflict: Solicitud conflictúa con estado actual
  • 410 Gone: Recurso fue eliminado permanentemente
  • 422 Unprocessable Entity: Validación semántica falló
  • 429 Too Many Requests: Límite de tasa excedido

5xx Error del Servidor:

  • 500 Internal Server Error: Fallo genérico del servidor
  • 501 Not Implemented: Servidor no soporta la funcionalidad solicitada
  • 502 Bad Gateway: Servidor upstream devolvió respuesta inválida
  • 503 Service Unavailable: Servidor temporalmente no disponible
  • 504 Gateway Timeout: Servidor upstream no respondió a tiempo

Métricas y Medición

  • Tasa de 4xx: Porcentaje de solicitudes con error del cliente (meta: <5% del total)
  • Tasa de 5xx: Porcentaje de solicitudes con error del servidor (meta: <0,1% del total)
  • Tiempo hasta primer estado: Tiempo hasta que el código de estado es devuelto (meta: <200ms p95)

Referencias del sector:

  • Tasa promedio de 4xx en la web: 3-7% de todas las solicitudes (HTTP Archive, 2025)
  • Tasa promedio de 5xx en la web: 0,5-2% de todas las solicitudes (HTTP Archive, 2025)
  • 404 es el código 4xx más común, responsable del 80%+ de errores de cliente (HTTP Archive, 2025)

Errores Comunes y Correcciones

Error: Devolver 500 para errores de validación de entrada del cliente Corrección: Use 400 Bad Request o 422 Unprocessable Entity para entrada inválida del cliente

Error: Usar 200 OK para errores y confiar solo en el cuerpo de la respuesta Corrección: Siempre use la clase de código de estado correcta. Los códigos de estado son legibles por máquina; los cuerpos de respuesta no lo son.

Error: Exponer stack traces en respuestas de error 500 Corrección: Devuelva un mensaje de error genérico en producción y registre los detalles en el servidor

Error: No distinguir entre 401 y 403 Corrección: 401 significa “no autenticado.” 403 significa “autenticado pero no autorizado.”

Casos de uso de códigos de estado HTTP

Aplicaciones Web

Los navegadores interpretan códigos de estado para renderizar páginas de error, seguir redirecciones y almacenar recursos en caché. Un 301 dispara actualización automática de URLs. Un 404 muestra una página de error amigable.

APIs REST

Las APIs usan códigos de estado para comunicar éxito (200, 201), errores del cliente (400, 404) y problemas del servidor (500, 503). Los clientes usan el código de estado para determinar cómo manejar la respuesta.

CDN y Proxies Inversos

Los CDN interpretan códigos 3xx para seguir redirecciones, almacenar en caché respuestas 200/301 e ignorar caché para 4xx/5xx. Generan 502/504 cuando el origen está inaccesible.

Balanceadores de Carga

Las verificaciones de salud esperan 200 OK para marcar un servidor como saludable. Cualquier respuesta 4xx o 5xx hace que el servidor sea removido de la rotación.

Preguntas Frecuentes

¿Cuál es la diferencia entre 401 y 403? 401 Unauthorized significa que el cliente no ha proporcionado credenciales válidas. 403 Forbidden significa que el cliente está autenticado pero no tiene permiso para el recurso.

¿Cuándo debo usar 400 vs 422? Use 400 para sintaxis inválida (JSON malformado, campos obligatorios ausentes). Use 422 cuando la sintaxis es válida pero el contenido viola reglas de negocio.

¿Cómo maneja un navegador una redirección 301? El navegador sigue automáticamente la nueva URL proporcionada en la cabecera Location y actualiza marcadores y enlaces en caché a la nueva dirección.

¿429 siempre es sobre limitación de tasa? 429 Too Many Requests es específicamente para limitación de tasa. La respuesta debe incluir una cabecera Retry-After indicando cuándo el cliente puede reintentar.

¿Qué sucede si recibo un error 502? El servidor que actúa como gateway o proxy recibió una respuesta inválida de un servidor upstream. Esto típicamente indica que el servidor upstream está caído o mal configurado.

¿Un código de estado puede ser no estándar? Sí. Se pueden usar códigos de estado personalizados, pero deben estar en el rango 1xx-5xx. Los clientes pueden no manejarlos correctamente a menos que estén documentados.

¿Cuál es la diferencia entre 302 y 307? 302 permite que el navegador cambie el método de la solicitud (ej: POST a GET). 307 preserva el método original y el cuerpo. Ambos son redirecciones temporales.

¿Por qué veo código de estado 0 en DevTools del navegador? El código 0 significa que el navegador nunca recibió una respuesta. Esto típicamente indica un error de red, fallo de CORS o que la solicitud fue cancelada.

¿Cómo depurar un error 500? Verifique los logs del servidor en busca de stack traces, revise despliegues recientes, examine el payload de la solicitud para casos extremos y pruebe el endpoint de forma aislada.

¿Qué es una respuesta 304 Not Modified? El servidor informa al cliente que la versión en caché del recurso sigue siendo válida. El cliente usa su caché local en lugar de descargar nuevamente.

Cómo se aplica en la práctica

Los códigos de estado HTTP son el lenguaje universal de la comunicación web. Cada solicitud que su navegador, aplicación móvil o cliente de API recibe uno. Entenderlos significa que puede diagnosticar problemas sin abrir un solo archivo de log — el código de estado por sí solo a menudo revela si el problema está en su lado (4xx) o en el servidor (5xx).

Los equipos configuran alertas de monitoreo alrededor de códigos de estado: un pico en errores 5xx dispara una respuesta inmediata, mientras que tasas elevadas de 4xx pueden indicar un error en el cliente o una integración mal configurada.

Cómo implementar en Azion

Azion le permite monitorear, registrar y responder a códigos de estado HTTP en el borde de la red:

  1. Monitoree códigos de estado: Use Azion Metrics para rastrear tasas de 2xx, 4xx y 5xx para todas las aplicaciones
  2. Configure alertas: Defina alertas para umbrales de tasa 5xx para detectar problemas de origen temprano
  3. Páginas de error personalizadas: Use la configuración de respuesta de error de Azion para devolver contenido personalizado para respuestas 4xx y 5xx
  4. Análisis de logs: Exporte logs de solicitudes con códigos de estado a su plataforma de análisis via Azion Data Streaming

Más información en la Documentación de Azion.


Fuentes:

  • IETF. “HTTP Semantics.” RFC 9110. 2022.
  • IETF. “HTTP Caching.” RFC 9111. 2022.
  • IETF. “HTTP Status Codes.” RFC 9110, Sección 15. 2022.
  • HTTP Archive. “Web Almanac: HTTP.” 2025.
  • MDN Web Docs. “Códigos de estado de respuesta HTTP.” 2026.
mantente actualizado

Suscríbete a nuestro boletín informativo

Recibe las últimas actualizaciones de productos, destacados de eventos y conocimientos de la industria tecnológica directamente en tu bandeja de entrada.