Todos 2xx Éxito 3xx Redirección 4xx Error del Cliente 5xx Error del Servidor

¿Qué son los Códigos de Estado HTTP?

Los códigos de estado HTTP son números de tres dígitos devueltos por un servidor en respuesta a una solicitud HTTP. Indican al cliente si la solicitud fue exitosa, si necesita tomar alguna acción adicional, o si ocurrió un error. Los códigos de estado se agrupan en cinco clases según su primer dígito.

Categorías de Códigos de Estado HTTP

  • 1xx (Informativo): La solicitud fue recibida y el proceso continúa.
  • 2xx (Éxito): La solicitud fue recibida, entendida y aceptada exitosamente.
  • 3xx (Redirección): El cliente necesita tomar una acción adicional para completar la solicitud.
  • 4xx (Error del Cliente): La solicitud contiene sintaxis incorrecta o no puede ser cumplida. El cliente cometió un error.
  • 5xx (Error del Servidor): El servidor no pudo cumplir una solicitud aparentemente válida. El servidor cometió un error.

Códigos de Estado HTTP Más Comunes

  • 200 OK: Respuesta estándar de éxito para solicitudes GET, PUT, PATCH, DELETE
  • 201 Created: El recurso fue creado exitosamente, típicamente para solicitudes POST
  • 301 Moved Permanently: La URL ha cambiado permanentemente — usado para redirecciones amigables con SEO
  • 400 Bad Request: El servidor no puede procesar la solicitud debido a sintaxis inválida
  • 401 Unauthorized: Se requiere autenticación y ha fallado o no fue proporcionada
  • 403 Forbidden: El cliente no tiene permiso para acceder a este recurso
  • 404 Not Found: El recurso solicitado no pudo ser encontrado en el servidor
  • 429 Too Many Requests: Límite de tasa excedido
  • 500 Internal Server Error: Error inesperado del lado del servidor

Preguntas Frecuentes sobre Códigos de Estado HTTP

¿Cuál es la diferencia entre HTTP 401 y 403?

HTTP 401 Unauthorized significa que se requiere autenticación pero falta o es inválida — el usuario no ha iniciado sesión o proporcionó un token expirado. HTTP 403 Forbidden significa que el usuario está autenticado pero no tiene permiso para acceder al recurso. En resumen: 401 significa "¿quién es usted?", 403 significa "sé quién es usted, pero no puede acceder a esto." Siempre envíe un header WWW-Authenticate con 401 para indicar al cliente cómo autenticarse.

¿Cuándo debo usar 201 Created en lugar de 200 OK?

Devuelva 201 Created cuando una solicitud POST crea exitosamente un nuevo recurso. Incluya un header Location en la respuesta apuntando a la URL del recurso recién creado. Devuelva 200 OK para solicitudes GET, PUT o PATCH exitosas que no crean nuevos recursos. Para operaciones DELETE exitosas con cuerpo de respuesta vacío, devuelva 204 No Content. Usar el código correcto ayuda a los clientes de API a manejar las respuestas correctamente.

¿Qué es HTTP 422 Unprocessable Entity?

HTTP 422 significa que el servidor entiende el tipo de contenido de la solicitud y la sintaxis es válida, pero no puede procesar las instrucciones semánticas. Se usa en APIs REST cuando la validación del cuerpo de la solicitud falla — falta un campo requerido, un valor está fuera de rango, o el formato de fecha es inválido. Es más específico que 400 Bad Request (que indica sintaxis malformada). Devuelva los errores de validación en el cuerpo de la respuesta para ayudar al cliente a corregir la solicitud.

¿Cuál es la diferencia entre los códigos de estado 500 y 503?

HTTP 500 Internal Server Error es un error genérico del lado del servidor que indica que algo inesperado salió mal — un bug, una excepción no manejada, o una mala configuración. HTTP 503 Service Unavailable significa que el servidor intencionalmente no puede manejar la solicitud en este momento, típicamente debido a mantenimiento o sobrecarga. Con 503, incluya un header Retry-After para indicar a los clientes cuándo intentar nuevamente.

Herramientas Relacionadas para Desarrolladores