Referencia de códigos de estado HTTP
Lista con buscador de todos los códigos de estado HTTP del registro IANA (100–511) con su frase de motivo, el RFC que los define y una explicación clara de su uso.
- 100ContinueRFC 9110
El servidor recibió las cabeceras; el cliente puede seguir enviando el cuerpo (respuesta a Expect: 100-continue).
- 101Switching ProtocolsRFC 9110
El servidor acepta cambiar de protocolo según la cabecera Upgrade, por ejemplo a WebSocket.
- 102ProcessingRFC 2518
WebDAV: el servidor sigue procesando una petición larga; aún no hay respuesta.
- 103Early HintsRFC 8297
Se envía antes de la respuesta final para que el navegador precargue los recursos indicados en cabeceras Link.
- 104Upload Resumption Supporteddraft-ietf-httpbis-resumable-uploadregistro temporal
Borrador de subidas reanudables: el servidor permite reanudar subidas interrumpidas.
- 200OKRFC 9110
La petición tuvo éxito. El cuerpo contiene el recurso pedido o el resultado de la acción.
- 201CreatedRFC 9110
Se creó un recurso nuevo; su URL suele venir en la cabecera Location.
- 202AcceptedRFC 9110
La petición se aceptó para procesarla, pero aún no ha terminado (tareas asíncronas).
- 203Non-Authoritative InformationRFC 9110
Éxito, pero un proxy que transforma el contenido modificó la respuesta.
- 204No ContentRFC 9110
Éxito sin cuerpo de respuesta, típico de DELETE o al guardar datos.
- 205Reset ContentRFC 9110
Éxito; el cliente debe restablecer el formulario o la vista que envió la petición.
- 206Partial ContentRFC 9110
Solo se devuelve una parte del recurso, según la cabecera Range (descargas reanudables, saltos en vídeo).
- 207Multi-StatusRFC 4918
WebDAV: el cuerpo contiene códigos de estado distintos para varios recursos.
- 208Already ReportedRFC 5842
WebDAV: los miembros de un enlace ya se listaron antes en esta respuesta.
- 226IM UsedRFC 3229
Codificación delta: la respuesta es el resultado de manipulaciones aplicadas al recurso.
- 300Multiple ChoicesRFC 9110
Hay varias representaciones disponibles y el cliente puede elegir una.
- 301Moved PermanentlyRFC 9110
El recurso se movió de forma permanente a la URL de Location; los buscadores trasladan el posicionamiento. Los clientes pueden cambiar POST por GET.
- 302FoundRFC 9110
El recurso está temporalmente en otra URL; hay que seguir usando la original. Los clientes pueden cambiar POST por GET.
- 303See OtherRFC 9110
Consulta otra URL con GET, normalmente tras enviar un formulario (patrón Post/Redirect/Get).
- 304Not ModifiedRFC 9110
La copia en caché sigue siendo válida (petición condicional con If-None-Match / If-Modified-Since); no se envía cuerpo.
- 305Use ProxyRFC 9110obsoleto
Obsoleto: había que acceder al recurso a través de un proxy. No se usa por motivos de seguridad.
- 306(Unused)RFC 9110reservado, sin uso
Reservado; se usó en un borrador anterior y ya no se utiliza.
- 307Temporary RedirectRFC 9110
Redirección temporal que conserva el método y el cuerpo (un POST sigue siendo POST).
- 308Permanent RedirectRFC 9110
Redirección permanente que conserva el método y el cuerpo (un POST sigue siendo POST).
- 400Bad RequestRFC 9110
El servidor no puede procesar la petición porque está mal formada (sintaxis, parámetros o JSON no válidos).
- 401UnauthorizedRFC 9110
Se requiere autenticación o falló; la respuesta incluye una cabecera WWW-Authenticate.
- 402Payment RequiredRFC 9110
Reservado para uso futuro; algunas API lo usan para problemas de pago o de cuota.
- 403ForbiddenRFC 9110
El servidor entendió la petición pero la rechaza; volver a iniciar sesión no ayudará.
- 404Not FoundRFC 9110
No existe ningún recurso en esta URL (o el servidor no quiere revelarlo).
- 405Method Not AllowedRFC 9110
El método HTTP no está admitido para este recurso; la cabecera Allow indica los válidos.
- 406Not AcceptableRFC 9110
Ninguna representación coincide con las cabeceras Accept del cliente.
- 407Proxy Authentication RequiredRFC 9110
Como 401, pero hay que autenticarse en el proxy.
- 408Request TimeoutRFC 9110
El cliente tardó demasiado en enviar la petición y el servidor cerró la conexión.
- 409ConflictRFC 9110
La petición entra en conflicto con el estado actual del recurso (p. ej. edición simultánea, duplicado).
- 410GoneRFC 9110
El recurso se eliminó para siempre y no volverá; más contundente que 404.
- 411Length RequiredRFC 9110
El servidor exige la cabecera Content-Length.
- 412Precondition FailedRFC 9110
No se cumplió una condición previa como If-Match o If-Unmodified-Since (bloqueo optimista).
- 413Content Too LargeRFC 9110
El cuerpo de la petición supera el tamaño que admite el servidor (límite de subida).
- 414URI Too LongRFC 9110
La URL es más larga de lo que el servidor puede procesar.
- 415Unsupported Media TypeRFC 9110
El tipo de medio del cuerpo (Content-Type) no está admitido.
- 416Range Not SatisfiableRFC 9110
No se puede atender el Range pedido, por ejemplo porque empieza después del final del archivo.
- 417Expectation FailedRFC 9110
No se puede cumplir lo indicado en la cabecera Expect.
- 418(Unused)RFC 9110reservado, sin uso
Reservado y sin uso; famoso por el "I’m a teapot" de la RFC 2324 del Día de los Inocentes.
- 421Misdirected RequestRFC 9110
La petición llegó a un servidor que no puede responder por este host (p. ej. conexión HTTP/2 reutilizada).
- 422Unprocessable ContentRFC 9110
La sintaxis es correcta pero el contenido no es válido semánticamente (errores de validación).
- 423LockedRFC 4918
WebDAV: el recurso está bloqueado.
- 424Failed DependencyRFC 4918
WebDAV: la petición falló porque falló otra acción de la que dependía.
- 425Too EarlyRFC 8470
El servidor se niega a procesar una petición que podría repetirse (early data de TLS 1.3).
- 426Upgrade RequiredRFC 9110
El cliente debe cambiar a otro protocolo indicado en la cabecera Upgrade.
- 428Precondition RequiredRFC 6585
El servidor exige una petición condicional (If-Match) para evitar actualizaciones perdidas.
- 429Too Many RequestsRFC 6585
Demasiadas peticiones en un periodo (limitación de tasa); Retry-After indica cuándo reintentar.
- 431Request Header Fields Too LargeRFC 6585
Las cabeceras de la petición (o una de ellas, como las cookies) son demasiado grandes.
- 451Unavailable For Legal ReasonsRFC 7725
El recurso no está disponible por motivos legales, como una orden judicial o censura.
- 500Internal Server ErrorRFC 9110
Error genérico e inesperado en el servidor.
- 501Not ImplementedRFC 9110
El servidor no admite la funcionalidad necesaria (p. ej. un método desconocido).
- 502Bad GatewayRFC 9110
Un gateway o proxy recibió una respuesta no válida del servidor de origen.
- 503Service UnavailableRFC 9110
El servidor está sobrecargado o en mantenimiento temporalmente; puede enviar Retry-After.
- 504Gateway TimeoutRFC 9110
Un gateway o proxy no recibió a tiempo la respuesta del servidor de origen.
- 505HTTP Version Not SupportedRFC 9110
No se admite la versión de HTTP usada en la petición.
- 506Variant Also NegotiatesRFC 2295
La negociación de contenido está mal configurada: la variante elegida también negocia.
- 507Insufficient StorageRFC 4918
WebDAV: el servidor no tiene espacio suficiente para completar la petición.
- 508Loop DetectedRFC 5842
WebDAV: el servidor detectó un bucle infinito al procesar la petición.
- 510Not Extended (OBSOLETED)RFC 2774obsoleto
Obsoleto: la petición necesitaba más extensiones (HTTP Extension Framework).
- 511Network Authentication RequiredRFC 6585
El cliente debe autenticarse para acceder a la red, p. ej. un portal cautivo de Wi-Fi.
¿Qué es Códigos de estado HTTP?
Una referencia completa y con buscador de los 64 códigos de estado HTTP registrados en IANA, desde 100 Continue hasta 511 Network Authentication Required. Cada entrada muestra la frase de motivo oficial, el RFC que lo define y una breve explicación de lo que significa y cuándo lo envían los servidores; los códigos obsoletos y sin uso están marcados.
Cómo usar Códigos de estado HTTP
- Escribe en el buscador un código (
404), parte de un código (30) o una palabra (redirección,timeout). - Filtra por clase: 1xx informativos, 2xx éxito, 3xx redirección, 4xx error del cliente, 5xx error del servidor.
- Consulta la frase de motivo, el RFC y la explicación de cada código.
Ejemplo
418
418 (Unused) · RFC 9110 · reserved and unused; known from the "I’m a teapot" April Fools’ RFC 2324.
Cuándo usar Códigos de estado HTTP
Úsala al depurar API, leer registros del servidor o elegir qué estado devolver desde tus propios endpoints. Los códigos no oficiales que usan productos concretos (Nginx 499, Cloudflare 520–527, IIS 440) no están en el registro y por tanto no aparecen.
Cómo funciona Códigos de estado HTTP
La lista refleja el registro de códigos de estado HTTP de IANA, que desde 2022 se define principalmente en el RFC 9110 (HTTP Semantics) más extensiones como WebDAV (RFC 4918) y el RFC 6585. La búsqueda compara el prefijo del código, la frase de motivo en inglés y la explicación en el idioma actual, todo localmente.
Casos de Uso Comunes
- Decidir entre 401 y 403, o entre 400 y 422, para un error de API.
- Consultar 425 Too Early o 421 Misdirected Request vistos en los registros.
- Explicar a un cliente por qué 410 Gone es mejor que 404 para páginas eliminadas.
- Elegir 307 o 308 cuando una redirección debe conservar el método POST.
Preguntas Frecuentes
¿Qué diferencia hay entre 401 y 403?
401 significa no autenticado (o que las credenciales fallaron) y va acompañado de WWW-Authenticate. 403 significa que el servidor sabe quién eres pero no tienes permiso.
¿Es 418 I'm a teapot un código de estado real?
Está reservado en el registro y el RFC 9110 lo marca como sin uso, porque muchísimas bibliotecas lo implementan a partir del RFC de broma del Día de los Inocentes de 1998.
¿Por qué 422 se llama ahora Unprocessable Content?
El RFC 9110 lo trasladó de WebDAV al núcleo de HTTP y lo renombró, ya que antes se llamaba Unprocessable Entity.