Códigos de estado HTTP
Funciona por completo en tu navegador. Tus archivos y datos nunca salen de tu dispositivo.
| 1xxInformativo | ||
|---|---|---|
| 100 | Continue | Se ha recibido la parte inicial de una solicitud y el cliente debe continuar. |
| 101 | Switching Protocols | El servidor acepta cambiar de protocolo según lo solicitado por el cliente. |
| 102 | Processing | El servidor ha recibido y está procesando la solicitud, pero aún no hay respuesta disponible. |
| 103 | Early Hints | Se usa para devolver algunas cabeceras de respuesta antes del mensaje HTTP final. |
| 2xxÉxito | ||
| 200 | OK | La solicitud se ha completado con éxito. |
| 201 | Created | La solicitud se ha completado con éxito y se ha creado un nuevo recurso como resultado. |
| 202 | Accepted | La solicitud se ha recibido, pero aún no se ha procesado. |
| 203 | Non-Authoritative Information | Los metadatos devueltos no son exactamente los mismos que los del servidor de origen. |
| 204 | No Content | El servidor ha satisfecho la solicitud, pero no tiene contenido que devolver. |
| 205 | Reset Content | El servidor pide al cliente que restablezca el documento que envió esta solicitud. |
| 206 | Partial Content | El servidor está entregando solo una parte del recurso debido a una cabecera de rango enviada por el cliente. |
| 207 | Multi-Status | Transmite información sobre múltiples recursos en situaciones donde varios códigos de estado podrían ser apropiados. |
| 208 | Already Reported | Se usa dentro de una respuesta DAV para evitar enumerar repetidamente los miembros de múltiples enlaces. |
| 226 | IM Used | El servidor ha satisfecho una solicitud del recurso y la respuesta es una representación del resultado de manipulaciones de instancia. |
| 3xxRedirección | ||
| 300 | Multiple Choices | La solicitud tiene más de una respuesta posible y el cliente debe elegir una. |
| 301 | Moved Permanently | El recurso se ha movido de forma permanente a una nueva URL. |
| 302 | Found | El recurso reside temporalmente en una URL diferente. |
| 303 | See Other | La respuesta se puede encontrar en una URL diferente y debe obtenerse con GET. |
| 304 | Not Modified | El recurso no se ha modificado desde la versión especificada por las cabeceras de la solicitud. |
| 305 | Use Proxy | Se debe acceder al recurso solicitado a través del proxy indicado por el campo location. |
| 307 | Temporary Redirect | El recurso reside temporalmente en una URL diferente y el método no debe cambiar. |
| 308 | Permanent Redirect | El recurso se ha movido de forma permanente y el método no debe cambiar. |
| 4xxError del cliente | ||
| 400 | Bad Request | El servidor no puede procesar la solicitud debido a un error del cliente. |
| 401 | Unauthorized | El cliente debe autenticarse para obtener la respuesta solicitada. |
| 402 | Payment Required | Reservado para uso futuro, originalmente pensado para sistemas de pago digital. |
| 403 | Forbidden | El cliente no tiene derechos de acceso al contenido. |
| 404 | Not Found | El servidor no puede encontrar el recurso solicitado. |
| 405 | Method Not Allowed | El método de la solicitud es conocido por el servidor, pero no es compatible con el recurso de destino. |
| 406 | Not Acceptable | El servidor no puede producir una respuesta que coincida con la lista de valores aceptables. |
| 407 | Proxy Authentication Required | El cliente debe autenticarse primero con el proxy. |
| 408 | Request Timeout | El servidor agotó el tiempo de espera de la solicitud. |
| 409 | Conflict | La solicitud entra en conflicto con el estado actual del recurso de destino. |
| 410 | Gone | El contenido solicitado se ha eliminado de forma permanente del servidor y no volverá. |
| 411 | Length Required | El servidor se niega a aceptar la solicitud sin una cabecera Content-Length definida. |
| 412 | Precondition Failed | No se cumplió una de las condiciones de las cabeceras de la solicitud. |
| 413 | Payload Too Large | La entidad de la solicitud es mayor que los límites definidos por el servidor. |
| 414 | URI Too Long | La URI solicitada por el cliente es más larga de lo que el servidor está dispuesto a interpretar. |
| 415 | Unsupported Media Type | El formato de medio de los datos solicitados no es compatible con el servidor. |
| 416 | Range Not Satisfiable | No se puede satisfacer el rango especificado por la cabecera Range. |
| 417 | Expectation Failed | No se pudo cumplir la expectativa indicada en la cabecera Expect de la solicitud. |
| 418 | I'm a Teapot | El servidor se niega a preparar café porque, de forma permanente, es una tetera. |
| 419 | Page ExpiredNo oficial | No estándar. Laravel lo devuelve cuando el token CSRF enviado con un formulario no coincide con la sesión, casi siempre porque la sesión caducó con la página abierta. |
| 420 | Enhance Your CalmNo oficial | No estándar. La antigua API de búsqueda y tendencias de Twitter lo enviaba a los clientes que superaban el límite de solicitudes; el código estándar para eso es el 429. Spring Framework también definía el 420 como Method Failure, ya obsoleto. |
| 421 | Misdirected Request | La solicitud se dirigió a un servidor que no puede producir una respuesta. |
| 422 | Unprocessable Content | La solicitud estaba bien formada, pero no pudo procesarse debido a errores semánticos. |
| 423 | Locked | El recurso al que se está accediendo está bloqueado. |
| 424 | Failed Dependency | La solicitud falló porque dependía de otra solicitud que también falló. |
| 425 | Too Early | El servidor no está dispuesto a arriesgarse a procesar una solicitud que podría reenviarse. |
| 426 | Upgrade Required | El servidor se niega a ejecutar la solicitud usando el protocolo actual. |
| 428 | Precondition Required | El servidor de origen requiere que la solicitud sea condicional. |
| 429 | Too Many Requests | El cliente ha enviado demasiadas solicitudes en un período de tiempo determinado. |
| 431 | Request Header Fields Too Large | El servidor se niega a procesar la solicitud porque sus campos de cabecera son demasiado grandes. |
| 444 | No ResponseNo oficial | No estándar. Un código de nginx que cierra la conexión sin enviar ninguna respuesta; aparece en los registros del servidor, nunca en el navegador. |
| 451 | Unavailable For Legal Reasons | El recurso solicitado no está disponible debido a una exigencia legal de denegar el acceso. |
| 499 | Client Closed RequestNo oficial | No estándar. nginx lo registra cuando el cliente cierra la conexión antes de que el servidor termine de responder. |
| 5xxError del servidor | ||
| 500 | Internal Server Error | El servidor ha encontrado una situación que no sabe cómo manejar. |
| 501 | Not Implemented | El método de la solicitud no es compatible con el servidor y no se puede procesar. |
| 502 | Bad Gateway | El servidor, actuando como puerta de enlace, recibió una respuesta no válida del servidor de origen. |
| 503 | Service Unavailable | El servidor no está listo para atender la solicitud, a menudo debido a mantenimiento o sobrecarga. |
| 504 | Gateway Timeout | El servidor, actuando como puerta de enlace, no obtuvo una respuesta a tiempo. |
| 505 | HTTP Version Not Supported | La versión de HTTP utilizada en la solicitud no es compatible con el servidor. |
| 506 | Variant Also Negotiates | El servidor tiene un error de configuración interna en la negociación transparente de contenido. |
| 507 | Insufficient Storage | El servidor no puede almacenar la representación necesaria para completar la solicitud. |
| 508 | Loop Detected | El servidor detectó un bucle infinito al procesar la solicitud. |
| 510 | Not Extended | Se requieren extensiones adicionales a la solicitud para que el servidor pueda satisfacerla. |
| 511 | Network Authentication Required | El cliente necesita autenticarse para obtener acceso a la red. |
| 599 | Network Connect Timeout ErrorNo oficial | Un código no estándar utilizado por algunos proxies para indicar un tiempo de espera de conexión de red detrás del proxy. |
Acerca de esta herramienta
Esta es una lista de referencia de los códigos de estado HTTP del 100 al 599, que cubre las cinco clases definidas en la RFC 9110: informativa, éxito, redirección, error del cliente y error del servidor. Cada código muestra su nombre y una descripción breve, y el cuadro de búsqueda filtra la lista mientras escribes, por número, nombre o descripción.
¿Qué códigos incluye?
Todos los registrados bajo la RFC 9110, más algunos extras muy usados que nunca entraron en la especificación central pero aparecen constantemente en APIs reales: el 418 (la broma de la “tetera” que viene de la RFC 2324), el 429 (demasiadas solicitudes) y el 451 (no disponible por motivos legales). Escribe “404”, “no encontrado” o “gateway” y solo quedan visibles las filas que coinciden. Además, cada fila tiene su propio enlace: si añades #419 a la dirección de la página, llegas directo a ese código.
¿Qué significan los códigos no oficiales como el 419 y el 420?
Algunos códigos vienen de un framework o servidor concreto y no de una RFC. La lista los marca con la etiqueta “No oficial”. El código HTTP 419 (Page Expired) viene de Laravel: lo devuelve cuando el token CSRF enviado con un formulario ya no coincide con la sesión, casi siempre porque la sesión caducó con la página abierta. El error HTTP 420 (Enhance Your Calm) era la respuesta de la antigua API de búsqueda y tendencias de Twitter a los clientes que enviaban demasiadas solicitudes. El código estándar para ese caso es el 429. Spring Framework también usó el 420 para Method Failure, hoy obsoleto. Completan la lista dos códigos de nginx: el 444 cierra la conexión sin responder nada y el 499 indica que el cliente colgó antes de que el servidor terminara. Los verás en los registros del servidor, nunca en el navegador. Queda el 599, que algunos proxies usan cuando se agota el tiempo de conexión de red.
¿Necesita conexión a internet?
No. La lista es un dato estático que se renderiza directamente en la página; no se pide nada a un servidor ni al cargarla ni al buscar. Por eso la búsqueda es instantánea.
¿Cuándo la uso?
Es útil cuando estás depurando la respuesta de una API y no recuerdas si el 422 significa lo mismo que el 400, o cuando dudas si una redirección debería devolver 301, 302 o 308 y necesitas recordar en qué se diferencian. También sirve para los códigos más raros, como el 409 (conflicto), el 416 (rango no satisfacible) o la diferencia entre el 502 (puerta de enlace incorrecta) y el 503 (servicio no disponible). Consulta la referencia de códigos de estado HTTP de MDN para más detalles sobre cada uno.
Las cinco clases te dan una primera lectura rápida de cualquier respuesta incluso antes de mirar el número exacto. Un código que empieza por 2 indica que la solicitud tuvo éxito, el 3 que hay que seguir una redirección, el 4 que algo falló en la propia solicitud y el 5 que el fallo fue del servidor. Por eso servidores, navegadores y clientes de API suelen decidir qué hacer solo con el primer dígito. No hace falta ser programador para que esto resulte útil: muchas páginas de error comunes se limitan a mostrar un número desnudo, y esta lista lo convierte en una frase en lenguaje sencillo.