Tabla buscable con todos los codigos de estado HTTP registrados, su frase de motivo exacta y la seccion del RFC que los define. Filtra por clase 1xx a 5xx.
Que significa realmente este codigo de respuesta? Escribe un numero como 429 o una palabra como gateway para filtrar la tabla, o limitala a una sola clase. Cada fila muestra el codigo, la frase de motivo exacta que viaja por la red y la seccion de la especificacion que lo define.
Codigos coincidentes–
CodigoFrase de motivoDefinido en
Ningun codigo de estado coincide con esa busqueda.
Como leer bien los codigos de estado HTTP
El digito de clase es el que fija el contrato
Toda respuesta HTTP empieza por un codigo de tres digitos, y el primero es la unica parte que un cliente esta obligado a entender. El RFC 9110 lo dice sin rodeos: un cliente que recibe un 499 desconocido debe tratarlo exactamente igual que un 400, porque la clase define la semantica y los otros dos digitos solo la matizan. Esa regla es lo que mantiene el protocolo extensible. Un proxy escrito en 2005 sigue enrutando bien un 451 aunque no tenga ni idea de que es la censura legal.
Las cinco clases se reparten con claridad segun quien es responsable de lo que viene despues. Un 1xx es una respuesta provisional, asi que la respuesta real todavia esta por llegar. Un 2xx significa que la peticion tuvo exito y el cliente puede parar. Un 3xx devuelve una redireccion, asi que hay que reintentar en otro sitio. Un 4xx culpa a la peticion, de modo que repetirla sin cambios volvera a fallar. Un 5xx culpa al servidor, asi que la misma peticion podria funcionar al reintentar. Por eso la logica de reintentos se basa en la clase y no en el codigo concreto: reintentar un 503 es razonable, reintentar un 403 es un error de programacion.
Codigos que se confunden a diario
La diferencia entre 301 y 308, o entre 302 y 307, no es cosmetica. El par antiguo permite que el cliente reescriba un POST como GET al seguir la redireccion, algo que los navegadores han hecho historicamente. El par moderno prohibe esa reescritura y conserva tanto el metodo como el cuerpo. Si mueves el endpoint de un formulario con un 301, algunos clientes convertiran el envio en un GET en silencio y perderan los datos. Usa 308 o 307 para cualquier cosa que no sea idempotente.
401 y 403 tambien se mezclan a menudo. Un 401 significa que la peticion no venia autenticada y debe incluir una cabecera WWW-Authenticate que explique como reintentar con credenciales. Un 403 significa que el servidor sabe quien eres y aun asi se niega. Enviar un 401 sin cabecera de desafio incumple la especificacion, y devolver un 403 cuando el usuario simplemente olvido iniciar sesion complica muchisimo el diagnostico.
La clase 4xx contiene ademas un par especialmente util: 400 frente a 422. Un 400 significa que la peticion no se pudo analizar en absoluto, la sintaxis esta rota. Un 422 significa que la sintaxis era correcta pero el contenido no paso la validacion. Separar esos dos casos convierte un fallo opaco en algo accionable para quien consume la API.
Las frases de motivo son solo para humanos
El texto que acompana al codigo, como Not Found o I'm a teapot, es la frase de motivo. HTTP/1.1 la envia en la linea de estado, pero HTTP/2 y HTTP/3 la eliminaron por completo, de modo que una conexion moderna suele transportar el numero sin frase alguna. Ningun cliente deberia bifurcar su logica segun esa cadena. Existe para que una persona que lee un log o una traza cruda entienda que paso sin consultar una tabla.
Algunos codigos son ademas mas restrictivos de lo que parecen. Un 204 y un 304 no pueden incluir cuerpo de mensaje, asi que un intermediario que anada uno esta generando una respuesta invalida. Una respuesta a HEAD nunca lleva cuerpo, sea cual sea el codigo. Estas reglas de encuadre importan porque un cuerpo donde no se espera desincroniza la reutilizacion de la conexion, y eso aparece como corrupcion extrana entre peticiones distintas en lugar de como un error evidente.
Preguntas frecuentes
Cuantos codigos de estado HTTP existen?
IANA registra algo mas de sesenta codigos repartidos en las cinco clases, y esta tabla los recoge todos junto con varios codigos WebDAV y de extension ampliamente desplegados. El registro es abierto a proposito, y por eso los clientes deben recurrir al digito de clase ante cualquier codigo desconocido.
Debo usar 301 o 308 para una redireccion permanente?
Usa 308 salvo que quieras expresamente que los clientes antiguos conviertan POST en GET. Ambos indican que el recurso se movio de forma permanente, pero solo 308 garantiza que el metodo y el cuerpo sobreviven a la redireccion. Para mover una pagina normal sirve cualquiera de los dos.
Cual es la diferencia entre 401 y 403?
Un 401 significa que no te has autenticado y la respuesta debe incluir una cabecera WWW-Authenticate que explique como hacerlo. Un 403 significa que te autenticaste bien y aun asi no tienes permiso. Si al usuario solo le falta iniciar sesion, lo correcto es 401.
El 418 I'm a teapot es un codigo real?
Es real en el sentido de que el RFC 2324 lo define para el Hyper Text Coffee Pot Control Protocol, una especificacion de los inocentes de 1998. IANA lo mantiene reservado para que nadie mas ocupe el 418. No forma parte de HTTP propiamente dicho, pero varios frameworks lo implementan como guino.
Que codigos deberia reintentar mi cliente automaticamente?
Reintenta ante 408, 429 y la mayoria de respuestas 5xx, y respeta siempre la cabecera Retry-After cuando este presente. No reintentes codigos 4xx distintos de 408 y 429, porque el problema es la propia peticion y repetirla sin cambios fallara igual.
Por que mi respuesta HTTP/2 no trae frase de motivo?
HTTP/2 y HTTP/3 eliminaron la frase de motivo del formato de red porque ningun cliente deberia analizarla. Solo se transmite el codigo numerico. Las herramientas que muestran una frase para una respuesta HTTP/2 la estan buscando localmente en una tabla como esta.