Códigos de estado HTTP
Todos los códigos de estado HTTP explicados con claridad: qué significan, causas habituales, cómo solucionarlos, una respuesta de ejemplo y el RFC que los define.
70 códigos de estado
1xx Informativos
Respuestas provisionales: la solicitud se recibió y el proceso continúa.
100 Continue Continuar El servidor recibió las cabeceras de la petición y el cliente puede seguir enviando el cuerpo. Es una respuesta provisional que llega antes del estado final. 101 Switching Protocols Cambiando de protocolo El servidor acepta cambiar al protocolo que el cliente pidió en la cabecera Upgrade, casi siempre WebSocket. Tras esta respuesta la conexión habla el nuevo protocolo. 102 Processing Procesando Respuesta provisional de WebDAV que indica que el servidor sigue trabajando en una petición larga, para que el cliente no agote el tiempo. Está obsoleta y hoy casi no se envía. 103 Early Hints Early Hints Respuesta provisional que envía cabeceras Link por adelantado para que el navegador precargue CSS y fuentes o se preconecte a otros orígenes mientras el servidor aún genera la página final.
2xx Éxito
La solicitud se recibió, se entendió y se aceptó.
200 OK OK La petición tuvo éxito. En un GET el cuerpo contiene el recurso; en un POST contiene el resultado de la acción. 201 Created Creado La petición tuvo éxito y creó un recurso nuevo. La cabecera Location suele apuntar a él. 202 Accepted Aceptado La petición se aceptó para procesarla, pero el procesamiento no ha terminado. El resultado se desconoce en el momento de la respuesta. 203 Non-Authoritative Information Información no autorizada La petición tuvo éxito, pero un proxy transformador modificó el contenido de la respuesta 200 del origen. 204 No Content Sin contenido La petición tuvo éxito y no hay cuerpo que devolver. Las cabeceras pueden incluir metadatos como un nuevo ETag. 205 Reset Content Restablecer contenido La petición tuvo éxito y el cliente debe restablecer la vista del documento, por ejemplo vaciar el formulario enviado. No se envía cuerpo. 206 Partial Content Contenido parcial El servidor devuelve solo una parte del recurso, como pidió una cabecera Range. Content-Range indica qué bytes se incluyen. 207 Multi-Status Multiestado Respuesta WebDAV cuyo cuerpo XML contiene un estado distinto para cada uno de los recursos afectados por una petición. 208 Already Reported Ya reportado Se usa dentro de un cuerpo WebDAV 207 para indicar que un recurso ya apareció antes en la respuesta, evitando duplicados cuando los enlaces crean bucles. 226 IM Used IM usado El servidor atendió un GET aplicando una o más manipulaciones de instancia (codificación delta), así que el cuerpo es una diferencia y no el recurso completo.
3xx Redirección
El cliente debe dar otro paso, normalmente seguir una nueva URL.
300 Multiple Choices Múltiples opciones El recurso tiene varias representaciones (idioma, formato) y el cliente o el usuario debe elegir una. El servidor puede sugerir la preferida con Location. 301 Moved Permanently Movido permanentemente El recurso se trasladó de forma permanente a la URL de Location. Clientes y buscadores deben usar la nueva URL a partir de ahora. 302 Found Encontrado El recurso está temporalmente en otra URL. Los clientes deben seguir usando la URL original en futuras peticiones. 303 See Other Ver otro El servidor indica al cliente que obtenga otra URL con GET, normalmente para mostrar el resultado de un POST. 304 Not Modified No modificado La copia en caché que tiene el cliente sigue siendo válida, así que el servidor no envía cuerpo. Responde a una petición condicional con If-None-Match o If-Modified-Since. 305 Use Proxy Usar proxy Obsoleto. Antes pedía al cliente repetir la petición a través del proxy indicado en Location. Los navegadores lo ignoran por seguridad. 307 Temporary Redirect Redirección temporal El recurso está temporalmente en otra URL y el cliente debe repetir allí la petición con el mismo método y cuerpo. 308 Permanent Redirect Redirección permanente El recurso se trasladó de forma permanente y los clientes deben repetir la petición en la nueva URL con el mismo método y cuerpo.
4xx Errores del cliente
La solicitud tiene un problema que el cliente debe corregir.
400 Bad Request Petición incorrecta El servidor no puede procesar la petición porque está mal formada: sintaxis inválida, estructura incorrecta o valores que no puede interpretar. 401 Unauthorized No autorizado La petición carece de credenciales de autenticación válidas. Pese al nombre, significa no autenticado: inicia sesión o envía un token válido. 402 Payment Required Pago requerido Reservado para uso futuro, pero en la práctica los servicios lo devuelven cuando hace falta un pago o un plan de pago para continuar. 403 Forbidden Prohibido El servidor entendió la petición pero se niega a autorizarla. Volver a iniciar sesión no ayudará salvo que cambien los permisos. 404 Not Found No encontrado El servidor no encuentra nada en la URL solicitada. No dice si el recurso existió alguna vez ni si volverá. 405 Method Not Allowed Método no permitido La URL existe pero no admite el método HTTP usado. La cabecera Allow lista los métodos que funcionan. 406 Not Acceptable No aceptable El servidor no puede producir una respuesta en ningún formato permitido por las cabeceras Accept del cliente. 407 Proxy Authentication Required Autenticación de proxy requerida Un proxy entre el cliente y el servidor exige autenticación antes de reenviar la petición. 408 Request Timeout Tiempo de espera agotado El servidor cerró la conexión porque el cliente no envió una petición completa a tiempo. 409 Conflict Conflicto La petición entra en conflicto con el estado actual del recurso, como un duplicado o una edición simultánea. 410 Gone Ya no disponible El recurso desapareció de forma permanente y no se conoce una dirección nueva. A diferencia del 404, el servidor lo declara a propósito. 411 Length Required Longitud requerida El servidor exige una cabecera Content-Length y la petición no la incluía. 412 Precondition Failed Precondición fallida Una precondición de las cabeceras, como If-Match o If-Unmodified-Since, resultó falsa, así que el servidor no aplicó la petición. 413 Content Too Large Contenido demasiado grande El cuerpo de la petición es mayor de lo que el servidor quiere o puede procesar. Antes se llamaba Payload Too Large. 414 URI Too Long URI demasiado larga La URL de la petición es más larga de lo que el servidor está dispuesto a interpretar. 415 Unsupported Media Type Tipo de medio no soportado El servidor rechaza la petición porque el tipo de medio del cuerpo (Content-Type) o su codificación no se admite. 416 Range Not Satisfiable Rango no satisfacible La cabecera Range pide bytes fuera del tamaño del recurso. 417 Expectation Failed Expectativa fallida El servidor no puede cumplir lo que pide la cabecera Expect, normalmente Expect: 100-continue. 418 I'm a teapot Soy una tetera Una broma del Día de los Inocentes del Hyper Text Coffee Pot Control Protocol: el servidor es una tetera y se niega a preparar café. Algunos sitios lo usan como broma o para bloquear bots. 421 Misdirected Request Petición mal dirigida La petición llegó a un servidor que no está configurado para responder por ese host, a menudo porque se reutilizó una conexión HTTP/2 para otro dominio. 422 Unprocessable Content Contenido no procesable La petición está bien formada pero contiene errores semánticos, así que el servidor no puede procesarla. Antes Unprocessable Entity. 423 Locked Bloqueado WebDAV: el recurso está bloqueado, así que no se puede aplicar el método. 424 Failed Dependency Dependencia fallida WebDAV: la acción falló porque dependía de otra acción de la misma petición que falló. 425 Too Early Demasiado pronto El servidor se niega a procesar una petición enviada como datos tempranos de TLS 1.3 (0-RTT) porque podría repetirse. 426 Upgrade Required Actualización requerida El servidor rechaza la petición con el protocolo actual y exige al cliente actualizar, por ejemplo a TLS o HTTP/2, según indica la cabecera Upgrade. 428 Precondition Required Precondición requerida El servidor exige que la petición sea condicional (If-Match, etc.) para evitar actualizaciones perdidas. 429 Too Many Requests Demasiadas peticiones El cliente envió demasiadas peticiones en un tiempo dado (limitación de tasa). Retry-After puede indicar cuánto esperar. 431 Request Header Fields Too Large Campos de cabecera demasiado grandes Las cabeceras de la petición son demasiado grandes, ya sea una sola o todas juntas. 451 Unavailable For Legal Reasons No disponible por razones legales El servidor no puede ofrecer el recurso por motivos legales, como una orden judicial o censura gubernamental. El número es un guiño a Fahrenheit 451. 499 Client Closed Request (No estándar) El cliente cerró la petición nginx registra 499 cuando el cliente cerró la conexión antes de que el servidor enviara una respuesta. El cliente nunca ve este código.
5xx Errores del servidor
El servidor no pudo completar una solicitud válida.
500 Internal Server Error Error interno del servidor El servidor se encontró con una condición inesperada y no pudo completar la petición. Es un comodín genérico para errores del lado del servidor. 501 Not Implemented No implementado El servidor no admite la funcionalidad necesaria, normalmente el propio método de la petición. 502 Bad Gateway Puerta de enlace incorrecta Un gateway o proxy recibió una respuesta no válida del servidor upstream al que reenvió la petición. 503 Service Unavailable Servicio no disponible El servidor no puede atender la petición temporalmente por sobrecarga o mantenimiento. Retry-After puede indicar cuándo volver a intentarlo. 504 Gateway Timeout Tiempo de espera de la puerta de enlace Un gateway o proxy no recibió a tiempo la respuesta del servidor upstream. 505 HTTP Version Not Supported Versión HTTP no soportada El servidor no admite la versión de HTTP usada en la petición. 506 Variant Also Negotiates La variante también negocia La negociación de contenido transparente está mal configurada: la variante elegida está configurada a su vez para negociar, lo que crea un bucle. 507 Insufficient Storage Almacenamiento insuficiente El servidor no puede guardar la representación necesaria para completar la petición (sin espacio en disco o cuota). Procede de WebDAV. 508 Loop Detected Bucle detectado El servidor detectó un bucle infinito al procesar una petición con Depth: infinity (WebDAV). Algunos hostings también lo usan para límites de recursos. 510 Not Extended No extendido El servidor necesita más extensiones para completar la petición (HTTP Extension Framework). Ese marco es hoy histórico. 511 Network Authentication Required Autenticación de red requerida El cliente debe autenticarse para acceder a la red, normalmente en un portal cautivo (wifi de hotel o aeropuerto). 520 Web Server Returned an Unknown Error (No estándar) Error desconocido Específico de Cloudflare: el servidor de origen devolvió una respuesta vacía, desconocida o inesperada. 521 Web Server Is Down (No estándar) Servidor web caído Específico de Cloudflare: el servidor de origen rechazó la conexión. 522 Connection Timed Out (No estándar) Tiempo de conexión agotado Específico de Cloudflare: la conexión TCP con el origen agotó el tiempo de espera. 523 Origin Is Unreachable (No estándar) Origen inaccesible Específico de Cloudflare: Cloudflare no puede llegar al origen, normalmente por problemas de DNS o de enrutamiento. 524 A Timeout Occurred (No estándar) Se agotó el tiempo Específico de Cloudflare: se estableció la conexión con el origen, pero este no envió una respuesta HTTP a tiempo (100 segundos por defecto). 525 SSL Handshake Failed (No estándar) Fallo del handshake SSL Específico de Cloudflare: falló el handshake TLS entre Cloudflare y el origen. 526 Invalid SSL Certificate (No estándar) Certificado SSL no válido Específico de Cloudflare: en modo SSL Full (strict), el certificado del origen no es válido, ha caducado, está autofirmado o no coincide con el nombre de host.