Todos los códigos de estado HTTP, qué significan, cuándo enviarlos y la RFC de la que proceden
Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio.Un código de estado HTTP dice en 3 dígitos qué ha pasado. 404 significa que el recurso nunca estuvo ahí, 410 que estuvo y desapareció para siempre, y 301 lo traslada de forma permanente. Aquí aparece cada código con cuándo enviarlo y la RFC que lo define.
Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés
Escriba en el cuadro de búsqueda un número, un nombre o lo que quiere decir, como «rate limit».
Acote la lista de Códigos con los botones de Mostrar: Comunes, Todos o una clase de 1xx a 5xx.
Seleccione un código para leer su significado, cuándo usarlo, si se puede cachear y la RFC que lo define.
Elija un lenguaje en «Enviar este código en» y pulse Copiar fragmento para llevarse el código que lo devuelve.
Esta referencia de códigos de estado HTTP enumera todos los códigos registrados del 100 al 511, además de los no registrados que devuelven nginx, Apache, Laravel y Cloudflare. Cada entrada explica qué significa realmente el código, cuándo enviarlo, si una caché puede guardar la respuesta sin cabeceras de caché, si una redirección cambia el método de la petición y qué RFC lo define.
La búsqueda funciona de tres formas. Escriba un número como 404, o una clase como 4xx, para ir directamente a él. Escriba un nombre como «not found». O describa lo que quiere expresar, y la búsqueda por intención encuentra el código: «login failed» da 401, «rate limit» da 429, «file too large» da 413 y «validation failed» da 422.
Aquí se incluyen dos detalles que la mayoría de las listas explican mal. Que se pueda cachear no es un sí o un no: la sección 15.1 de la RFC 9110 nombra doce códigos que una caché puede guardar sin ninguna cabecera explícita, y por eso un 404 accidental puede quedarse pegado. Y las redirecciones difieren: 301 y 302 permiten al cliente convertir un POST en GET, 303 siempre lo hace, mientras que 307 y 308 deben repetir exactamente el método y el cuerpo.
Cada código habitual viene con un fragmento copiable para HTTP sin procesar, Express, Fastify, FastAPI, Go y PHP, incluida la cabecera que ese código requiere, como WWW-Authenticate en un 401 o Allow en un 405. No se envía nada a ningún sitio; la tabla completa está en la página.
Use 401 Unauthorized. Significa que el servidor no sabe quién es usted, así que una credencial ausente, caducada o incorrecta va ahí. Use 403 Forbidden solo cuando sabe quién llama y aun así se niega. La especificación pide una cabecera WWW-Authenticate en cada 401.
401 significa no autenticado: envíe credenciales y vuelva a intentarlo. 403 significa autenticado pero sin permiso: unas credenciales mejores no servirán. Si revelar que un registro existe ya es una filtración, algunas API responden 404 en lugar de 403 para que un atacante no aprenda nada.
La sección 15.1 de la RFC 9110 enumera 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 y 501 como cacheables de forma heurística, y la RFC 7725 añade el 451. Una caché puede guardarlos sin cabecera Cache-Control ni Expires, y por eso un 404 temporal puede persistir. Todos los demás códigos necesitan cabeceras de caché explícitas.
La especificación no lo permite, pero casi todos los navegadores hacen exactamente eso con 301 y 302. Un 303 siempre convierte la siguiente petición en GET. Si el método y el cuerpo deben sobrevivir a la redirección, use 307 para un traslado temporal o 308 para uno permanente.
418 I'm a Teapot procede de la RFC 2324, una broma del Día de los Inocentes de 1998 sobre un protocolo para cafeteras. Una propuesta de 2017 para reutilizar el número se retiró tras las objeciones, así que sigue reservado en el registro de IANA y nunca debe usarse con un significado real.
No. 499 es un código de nginx que solo aparece en los registros para un cliente que colgó, y del 520 al 527 son códigos de Cloudflare para problemas entre el borde y su servidor de origen. Ninguno está registrado en IANA. Se incluyen porque los encontrará en los registros, cada uno marcado con el producto que lo inventó.
¿Sigue sin resolverlo? Pregunte sobre Códigos de estado HTTP y cualquiera que lo sepa puede responder. No se necesita cuenta.