Referencia de Códigos de Estado HTTP
Una referencia consultable de todos los códigos de estado HTTP oficiales — qué significa cada uno y cuándo debe enviarlo un servidor, según la RFC 9110 y RFC relacionadas.
202 visitas
No hay códigos de estado coincidentes.
Por Qué los Códigos de Estado Se Agrupan por Primer Dígito
Todo código de estado HTTP es un número de tres dígitos, y el primer dígito por sí solo le indica a un cliente la categoría general de la respuesta incluso antes de leer el resto — una decisión de diseño incorporada en HTTP desde sus primeras especificaciones y mantenida desde entonces, formalizada hoy en la RFC 9110, el documento que consolidó y reemplazó la serie más antigua RFC 7230-7235 para definir la semántica de HTTP independientemente de cualquier versión específica del protocolo (HTTP/1.1, HTTP/2 y HTTP/3 comparten todos estos mismos significados de código de estado). 1xx (Informativo) significa que la solicitud fue recibida y entendida y el procesamiento continúa — son respuestas provisionales que un cliente no debe tratar como finales. 2xx (Éxito) significa que la solicitud fue recibida, entendida y aceptada. 3xx (Redirección) significa que se necesita una acción adicional para completar la solicitud, típicamente obtener una URL distinta. 4xx (Error del Cliente) significa que la solicitud, tal como se envió, contiene un problema causado por el cliente — sintaxis incorrecta, autenticación faltante, un recurso que no existe. 5xx (Error del Servidor) significa que la solicitud aparentemente era válida pero el servidor no logró satisfacerla. Este sistema de primer dígito significa que un cliente que solo reconoce el dígito "4" y nada más sobre un código específico igualmente sabe, correctamente, que algo en su propia solicitud necesita corregirse en lugar de reintentarse de forma idéntica — ese comportamiento de reserva es precisamente por lo que el estándar lo exige.
El segundo y tercer dígito subdividen cada clase en significados específicos y documentados, y se espera que un cliente recurra al comportamiento general de la clase para cualquier código que no reconozca específicamente — por eso códigos oscuros o más nuevos como el 226 o el 508 siguen siendo seguros de manejar de forma aproximadamente correcta incluso por software antiguo sin soporte explícito. Los códigos tampoco se inventan libremente: el registro completo lo mantiene la IANA (Internet Assigned Numbers Authority) precisamente para que "599" o "250" no puedan significar dos cosas distintas en dos servidores distintos — todo código en uso activo se remonta a una RFC específica que define su semántica exacta, varias de las cuales extienden la especificación original de HTTP/1.1 para protocolos particulares, siendo el más visible WebDAV (RFC 4918), de donde provienen los códigos 207, 208, 422, 423, 424 y 507/508 de esta página.
Dos Códigos que Vale la Pena Conocer con Precisión: 404 vs. 410
Dos de los códigos más comúnmente confundidos son 404 Not Found y 410 Gone, y la distinción no es cosmética — cambia cómo se comportan un buscador y un navegador. 404 es deliberadamente ambiguo: el servidor no tiene información sobre si el recurso alguna vez existió en esa URL, si podría volver, o si la URL simplemente se escribió mal. 410 es una afirmación deliberada y más fuerte: el recurso solía existir exactamente en esa URL y ha sido eliminado intencional y permanentemente, sin dirección de reenvío — la RFC 9110 recomienda explícitamente el 410 específicamente para este caso de "la condición probablemente sea permanente", donde un 404 subestimaría la certeza. Los buscadores tratan esto de forma distinta en la práctica: una URL que devuelve 404 repetidamente típicamente se elimina del índice solo después de ser rastreada de nuevo varias veces durante un período extendido por si acaso vuelve, mientras que un 410 señala una eliminación intencional y los buscadores generalmente actúan sobre él más rápido, retirando la página del índice antes porque el servidor ha garantizado explícitamente que no volverá. Usar correctamente el 410 al retirar permanentemente una página — en lugar de recurrir por defecto al 404 para todo — es una pequeña pero real palanca técnica de SEO.
- 301 vs. 302 vs. 307 vs. 308: el 301 y el 308 ambos significan "movido permanentemente", mientras que el 302 y el 307 ambos significan "movido temporalmente" — el par más nuevo 307/308 se introdujo específicamente para garantizar que el método y el cuerpo de la solicitud se preserven en la redirección (un POST sigue siendo un POST), porque el comportamiento histórico generalizado de los navegadores convertía silenciosamente las redirecciones 301/302 en un GET, lo cual rompía el reenvío de formularios de formas que los códigos más nuevos corrigen.
- 401 vs. 403: el 401 Unauthorized técnicamente significa "no estás autenticado — inicia sesión", a pesar del nombre confuso; el 403 Forbidden significa "estás identificado, pero no tienes permiso para acceder a esto", una distinción que muchas API difuminan en la práctica pero que la especificación mantiene claramente separada.
- 429 Too Many Requests (RFC 6585) es la respuesta estándar de limitación de velocidad y comúnmente se combina con un encabezado
Retry-Afterque indica al cliente exactamente cuánto tiempo esperar antes de volver a intentarlo. - Los códigos 1xx rara vez se ven directamente porque la mayoría de las bibliotecas de cliente HTTP los manejan de forma transparente antes de que el código de tu aplicación llegue a ver una respuesta — el 100 Continue, por ejemplo, permite a un cliente comprobar si vale la pena siquiera enviar un cuerpo de solicitud grande antes de enviarlo.
Preguntas Frecuentes
¿Cuál es la diferencia real entre 404 y 410?
Ambos significan que el recurso no se puede encontrar, pero el 404 deja ambiguo si alguna vez existió o si podría volver, mientras que el 410 es una afirmación deliberada de que el recurso existió en esa URL y ha sido eliminado permanente e intencionalmente. Los buscadores generalmente retiran del índice una página 410 más rápido que una 404 porque el servidor ha confirmado explícitamente que la eliminación es permanente.
¿Es 418 "I'm a Teapot" un código de estado real y utilizable?
Se originó en la RFC 2324, el "Hyper Text Coffee Pot Control Protocol" de 1998, una RFC de broma del Día de los Inocentes (April Fools'). Nunca se pensó en serio, pero resultó útil como código de prueba distintivo e inequívoco, y la RFC 9110 lo conserva formalmente hoy con una nota explícita de que su estatus es opcional y no se espera que sea implementado por servidores reales.
¿Por qué las redirecciones 301 y 302 a veces rompen los envíos de formularios?
Históricamente, muchos navegadores convertían silenciosamente una solicitud POST redirigida en una solicitud GET al seguir un 301 o 302, descartando el cuerpo enviado. Los códigos más nuevos 307 (Temporary Redirect) y 308 (Permanent Redirect) se introdujeron específicamente para garantizar que el método HTTP original y el cuerpo de la solicitud se preserven a través de la redirección.
¿Cuál es la diferencia entre 401 y 403?
El 401 Unauthorized en realidad significa que el cliente no se ha autenticado en absoluto — a pesar del nombre, está pidiendo credenciales. El 403 Forbidden significa que el cliente está identificado pero explícitamente no tiene permiso para acceder a ese recurso específico. Muchas API del mundo real los usan de forma laxa o intercambiable, pero la especificación mantiene los significados distintos.
¿De dónde vienen los códigos específicos de WebDAV como 507 o 423?
Se definen en la RFC 4918, la especificación WebDAV (Web Distributed Authoring and Versioning), que extiende el HTTP básico con operaciones para la gestión remota de archivos como bloquear un recurso (423 Locked) o informar que el servidor se quedó sin almacenamiento (507 Insufficient Storage). Siguen siendo parte del registro oficial de códigos de estado HTTP de la IANA junto a los códigos HTTP centrales.
Herramientas Similares
Reportar un Problema
Referencia de Códigos de Estado HTTP
Comentarios
Aún no hay comentarios — ¡sé el primero en escribir uno!