Menu

Códigos de estado HTTP

Referencia buscable de cada código de estado HTTP con explicaciones claras.

Última actualización

  • 100Continue

    1xx

    Se recibió la parte inicial de la solicitud; el cliente debe continuar enviando el cuerpo.

  • 101Switching Protocols

    1xx

    El servidor acepta cambiar de protocolo (p. ej. de HTTP/1.1 a WebSocket).

  • 102Processing

    1xx

    WebDAV — la solicitud fue aceptada pero aún no se ha completado.

  • 103Early Hints

    1xx

    Se usa con el encabezado Link para que el cliente precargue recursos antes de la respuesta final.

  • 200OK

    2xx

    La solicitud tuvo éxito. El significado exacto depende del método.

  • 201Created

    2xx

    La solicitud tuvo éxito y se creó un nuevo recurso.

  • 202Accepted

    2xx

    La solicitud fue aceptada para procesarse pero aún no se ha completado (trabajo asíncrono).

  • 203Non-Authoritative Information

    2xx

    Los metadatos devueltos provienen de un proxy transformador, no del servidor de origen.

  • 204No Content

    2xx

    La solicitud tuvo éxito pero no hay cuerpo que devolver.

  • 205Reset Content

    2xx

    Indica al cliente que reinicie la vista del documento que envió la solicitud (p. ej. limpiar el formulario).

  • 206Partial Content

    2xx

    Se usa en respuesta a una solicitud Range — el cuerpo contiene solo el rango de bytes solicitado.

  • 300Multiple Choices

    3xx

    El recurso tiene múltiples representaciones; el cliente debe elegir una.

  • 301Moved Permanently

    3xx

    El recurso tiene una nueva URL permanente. Los buscadores actualizan su índice.

  • 302Found

    3xx

    El recurso está temporalmente en otra URL. Usa 307 si debes mantener el método.

  • 303See Other

    3xx

    Tras un POST, redirige al cliente para obtener el resultado con GET (Post/Redirect/Get).

  • 304Not Modified

    3xx

    La copia en caché aún está fresca — se envía en respuesta a GET condicionales (ETag / If-Modified-Since).

  • 307Temporary Redirect

    3xx

    Como 302 pero el método de la solicitud no debe cambiarse al seguir la redirección.

  • 308Permanent Redirect

    3xx

    Como 301 pero el método de la solicitud no debe cambiarse al seguir la redirección.

  • 400Bad Request

    4xx

    El servidor no puede o no quiere procesar la solicitud por un error del cliente (sintaxis incorrecta, marco inválido).

  • 401Unauthorized

    4xx

    Se requiere autenticación y ha fallado o no se ha proporcionado. (A pesar del nombre, trata sobre autenticación, no autorización.)

  • 402Payment Required

    4xx

    Reservado para uso futuro. A veces lo usan las APIs para indicar que el usuario alcanzó una cuota de pago.

  • 403Forbidden

    4xx

    El servidor entendió la solicitud pero se niega a autorizarla. Volver a autenticarse no ayudará.

  • 404Not Found

    4xx

    El servidor no encuentra el recurso solicitado.

  • 405Method Not Allowed

    4xx

    El servidor conoce el método pero el recurso de destino no lo admite.

  • 406Not Acceptable

    4xx

    El servidor no puede producir una respuesta que coincida con los encabezados Accept del cliente.

  • 407Proxy Authentication Required

    4xx

    Como 401 pero la autenticación es para un proxy.

  • 408Request Timeout

    4xx

    Al servidor se le agotó el tiempo esperando la solicitud.

  • 409Conflict

    4xx

    La solicitud entra en conflicto con el estado actual del recurso (p. ej. conflicto de versión).

  • 410Gone

    4xx

    El recurso se eliminó de forma permanente, sin dirección de reenvío.

  • 411Length Required

    4xx

    El servidor requiere un encabezado Content-Length.

  • 412Precondition Failed

    4xx

    Una precondición en los encabezados (p. ej. If-Match) no se cumplió en el servidor.

  • 413Payload Too Large

    4xx

    El cuerpo de la solicitud es mayor de lo que el servidor está dispuesto a procesar.

  • 414URI Too Long

    4xx

    La URI es más larga de lo que el servidor está dispuesto a interpretar.

  • 415Unsupported Media Type

    4xx

    El cuerpo usa un tipo de medio que el servidor o el recurso no admiten.

  • 416Range Not Satisfiable

    4xx

    El encabezado Range pide una porción del archivo fuera de sus límites.

  • 418I'm a teapot

    4xx

    Una broma del Día de los Inocentes del RFC 2324. La devuelven los servidores que se niegan a hacer café.

  • 421Misdirected Request

    4xx

    La solicitud se envió a un servidor incapaz de producir una respuesta (p. ej. conexión HTTP/2 incorrecta).

  • 422Unprocessable Entity

    4xx

    La solicitud está bien formada pero contiene errores semánticos (común en APIs para fallos de validación).

  • 423Locked

    4xx

    WebDAV — el recurso al que se accede está bloqueado.

  • 425Too Early

    4xx

    El servidor no quiere procesar una solicitud que podría reenviarse.

  • 426Upgrade Required

    4xx

    El cliente debe actualizarse a otro protocolo (p. ej. TLS) para completar la solicitud.

  • 428Precondition Required

    4xx

    El servidor requiere que la solicitud sea condicional (ayuda a evitar el problema de actualización perdida).

  • 429Too Many Requests

    4xx

    El cliente ha enviado demasiadas solicitudes en un tiempo dado (limitación de tasa).

  • 431Request Header Fields Too Large

    4xx

    El servidor rechaza la solicitud porque un campo de encabezado — o los encabezados en total — son demasiado grandes.

  • 451Unavailable For Legal Reasons

    4xx

    El recurso no está disponible por razones legales (nombre inspirado en Fahrenheit 451).

  • 500Internal Server Error

    5xx

    El servidor encontró una condición inesperada. El error 5xx genérico.

  • 501Not Implemented

    5xx

    El servidor no reconoce el método de la solicitud.

  • 502Bad Gateway

    5xx

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

  • 503Service Unavailable

    5xx

    El servidor no está listo para atender la solicitud — normalmente sobrecargado o en mantenimiento.

  • 504Gateway Timeout

    5xx

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

  • 505HTTP Version Not Supported

    5xx

    El servidor no admite la versión de HTTP utilizada en la solicitud.

  • 507Insufficient Storage

    5xx

    WebDAV — el servidor no puede almacenar la representación necesaria para completar la solicitud.

  • 508Loop Detected

    5xx

    WebDAV — el servidor detectó un bucle infinito durante el procesamiento.

  • 511Network Authentication Required

    5xx

    El cliente debe autenticarse para obtener acceso a la red (portales cautivos).

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

Los códigos de estado HTTP son los números de tres dígitos que el servidor devuelve al inicio de cada respuesta para resumir qué ocurrió. Son la forma en que navegadores, clientes, proxies y CDN deciden si cachear, redirigir, reintentar o mostrar un error al usuario.

Cada código pertenece a una de cinco clases según su primer dígito: 1xx informativos, 2xx éxito, 3xx redirección, 4xx error del cliente, 5xx error del servidor. Cuando conoces la clase, ya tienes una idea bastante buena del significado aunque no recuerdes el código exacto.

La mayoría de aplicaciones solo usa un núcleo pequeño (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). Saber qué *significa* cada uno —y la diferencia entre 401 Unauthorized y 403 Forbidden, o entre 301 Moved Permanently y 302 Found— es lo que marca la diferencia como desarrollador backend o de APIs.

Lo que vas a aprender usando esta referencia

  • El primer dígito siempre indica la clase: 1xx info, 2xx éxito, 3xx redirección, 4xx error del cliente, 5xx error del servidor.
  • Los códigos de estado son *parte del contrato* que ofrece una API: los clientes deben ramificar según el código, no parsear mensajes de error del cuerpo.
  • 4xx significa que el cliente hizo algo mal (datos incorrectos, falta de autenticación, recurso inexistente). 5xx significa que el servidor falló, independientemente de lo que hiciera el cliente.

Cómo usar la referencia de códigos de estado paso a paso

  1. Busca por código o por nombre

    Escribe un número (404, 429) o una palabra clave (auth, redirect, rate limit) y los códigos coincidentes se filtran al instante.

  2. Filtra por clase

    Usa los chips de clase (1xx, 2xx, 3xx, 4xx, 5xx) para acotar la lista cuando estás explorando en lugar de buscar algo concreto.

  3. Lee la explicación en lenguaje claro

    Cada entrada incluye cuándo se envía el código, el comportamiento típico del cliente y la causa más habitual.

  4. Compara códigos relacionados

    Aprovecha los enlaces "ver también" entre parejas confusas (401 vs 403, 301 vs 302) para elegir el correcto en tu API.

Clases de códigos de estado HTTP

Las cinco clases de códigos de estado HTTP y lo que significan de un vistazo. Definidas en el RFC 9110 y registradas en el IANA HTTP Status Code Registry.

ClaseSignificadoCódigos comunes
1xx InformativosPetición recibida, en proceso100, 101, 103
2xx ÉxitoLa petición funcionó200, 201, 204, 206
3xx RedirecciónMira en otro sitio301, 302, 304, 307, 308
4xx Error del clienteAlgo está mal en la petición400, 401, 403, 404, 409, 422, 429
5xx Error del servidorEl servidor no pudo atender una petición válida500, 502, 503, 504

Códigos de estado HTTP que conviene conocer

200 OK vs 201 Created vs 204 No Content

200 OK

La respuesta estándar de "todo salió bien", con cuerpo.

201 Created

Se creó un recurso nuevo como consecuencia de la petición; normalmente tras un POST.

204 No Content

Éxito, pero sin cuerpo. Habitual tras llamadas DELETE o PUT que no necesitan devolver datos.

Los tres son códigos de éxito; la diferencia está en lo que lleva la respuesta. 201 debería incluir una cabecera Location que apunte al recurso recién creado; 204, por definición, va sin cuerpo.

301 Moved Permanently vs 302 Found

301

Redirección permanente. Navegadores y motores de búsqueda la recuerdan; la URL antigua queda prácticamente muerta.

302

Redirección temporal. Los navegadores vuelven a consultar la URL original en cada petición; los marcadores se mantienen en la URL antigua.

Usa 301 cuando realmente has movido un recurso (rebranding, cambio de estructura de URLs). Usa 302 para redirecciones cortas, como tests A/B, redirecciones de login o páginas de mantenimiento.

401 Unauthorized vs 403 Forbidden

401

No estás autenticado. El servidor no sabe quién eres.

403

El servidor sabe quién eres, pero no tienes permiso sobre este recurso.

Si enviar credenciales distintas podría arreglarlo, devuelve 401. Si ninguna credencial serviría (el recurso simplemente está vetado para este usuario), devuelve 403.

500 vs 502 vs 503 vs 504

500

Error genérico del servidor: tu código lanzó una excepción no controlada.

502

Bad gateway: un proxy intermedio (CDN, balanceador de carga) no pudo alcanzar el servidor upstream.

503

Service unavailable: el servidor está vivo, pero saturado o en mantenimiento.

504

Gateway timeout: un proxy llegó hasta el upstream, pero no recibió respuesta a tiempo.

Los cuatro son errores de servidor, pero cuentan historias muy distintas a quien depura. 500 apunta a tu aplicación; 502 y 504, al camino de red; 503, a la capacidad.

Errores habituales con los códigos de estado HTTP

  • Devolver 200 OK con {"error": "..."} en el cuerpo. Los códigos de estado son parte del contrato: usa el correcto (400, 404, 500) para que los clientes puedan ramificar.
  • Usar 401 para errores de permisos. 401 es para autenticación; los permisos denegados son 403.
  • Usar 200 para recursos recién creados en lugar de 201 con cabecera Location.

Preguntas frecuentes sobre códigos HTTP

¿Qué significa HTTP 404?
404 Not Found significa que el servidor entendió la petición, pero el recurso de esa URL no existe. Lo más común es que la ruta esté mal, que el recurso se haya borrado o que la URL esté mal escrita.
¿Cuál es la diferencia entre 401 y 403?
401 Unauthorized significa que no estás autenticado: el servidor no sabe quién eres. 403 Forbidden significa que estás autenticado, pero no tienes permiso sobre el recurso. Cambiar de credenciales puede solucionar un 401; nunca arreglará un 403.
¿Cuál es la diferencia entre 301 y 302?
301 Moved Permanently es una redirección permanente: navegadores y buscadores actualizan sus registros. 302 Found es una redirección temporal: los clientes siguen visitando la URL original. Usa 301 para movimientos definitivos y 302 para desvíos puntuales.
¿Qué significa HTTP 500?
500 Internal Server Error es un error genérico del lado del servidor, normalmente lanzado cuando se propaga una excepción no controlada. El cliente no hizo nada mal: tu servidor falló al procesar una petición válida.
¿Conviene usar siempre un código de estado específico?
Sí. Devolver 200 OK para fallos o 500 para todo lo que va mal complica el uso de la API. Elige el código más específico que encaje: clientes, proxies, monitorización y lógica de reintentos se basan en el código de estado.
¿Qué significa HTTP 429?
429 Too Many Requests se envía cuando un cliente alcanzó un límite de tasa. La respuesta debería incluir una cabecera Retry-After que indique al cliente cuándo es seguro volver a intentarlo.

Más información

Otras herramientas para desarrolladores

Aprende a programar con Coddy

COMENZAR