Inicio·Códigos y cabeceras HTTP
Publicidad

Consigue tu bono en un exchange de criptomonedas

Bonos que recibes solo por registrarte. Las condiciones son las que publica cada exchange.

132 códigos de estado y cabeceras HTTP

Qué significan de verdad 404 y 500, y qué hacen Content-Type o Cache-Control, en una línea.

Códigos de estado

1xx Informativos4

Un aviso de progreso; la respuesta real llega después.

2xx Éxito10

La petición salió bien.

3xx Redirección8

Ve a otro lugar: lo que cambia es si es permanente o temporal.

4xx Error del cliente29

El problema está en la petición; repetirla igual volverá a fallar.

400 Bad RequestLa petición está mal formada y no se puede leer.401 UnauthorizedNo has dicho quién eres; iniciar sesión suele resolverlo.402 Payment RequiredSe requiere pago: está en el estándar, pero apenas se usa.403 ForbiddenEl servidor sabe quién eres y aun así lo niega; iniciar sesión puede no cambiarlo.404 Not FoundNo hay nada en esa dirección: la URL está mal o la página ya no existe.405 Method Not AllowedLa dirección existe pero no admite ese método.406 Not AcceptableEl servidor no puede dar el formato solicitado.407 Proxy Authentication RequiredUn proxy intermedio exige autenticación antes.408 Request TimeoutEl servidor esperó y la petición nunca llegó entera.409 ConflictLa petición choca con el estado actual: típico de dos ediciones simultáneas.410 GoneEliminado a propósito y sin vuelta: una despedida más clara que un 404.411 Length RequiredLa petición debe indicar la longitud del cuerpo y no lo hizo.412 Precondition FailedNo se cumplió una condición adjunta a la petición.413 Content Too LargeEl cuerpo enviado supera el tamaño que admite el servidor.414 URI Too LongLa URL es demasiado larga: suele pasar al acumular parámetros.415 Unsupported Media TypeEl servidor no puede manejar el tipo de contenido enviado.416 Range Not SatisfiableEl rango solicitado queda fuera del archivo.417 Expectation FailedNo se puede cumplir lo indicado en la cabecera Expect.418 I'm a teapotUn código en broma: la tetera se niega a hacer café. Nació de un RFC del día de los inocentes.421 Misdirected RequestEste servidor no es el indicado para esa petición.422 Unprocessable ContentLa sintaxis es correcta, pero el contenido incumple las reglas.423 LockedEl recurso está bloqueado.424 Failed DependencyFalló una petición anterior, así que esta tampoco puede seguir.425 Too EarlyEl servidor no arriesga procesar algo que podría ser una repetición.426 Upgrade RequiredHay que cambiar de protocolo para continuar.428 Precondition RequiredLa petición debe llevar una condición: así se evitan sobrescrituras.429 Too Many RequestsHas hecho demasiadas peticiones; Retry-After indica cuándo reintentar.431 Request Header Fields Too LargeLas cabeceras son demasiado grandes: suele deberse a cookies acumuladas.451 Unavailable For Legal ReasonsBloqueado por motivos legales; el número alude a la novela Fahrenheit 451.

5xx Error del servidor11

El problema está en el servidor; suele valer la pena reintentar.

Cabeceras

Cabeceras de petición55

Cabeceras que añade el navegador al enviar al servidor.

AcceptIndica qué formatos acepta el cliente.Accept-EncodingLista las compresiones que entiende el cliente; gzip o br reducen mucho el tamaño.Accept-LanguageDeclara los idiomas preferidos; los sitios multilingües eligen con esto.AuthorizationLleva las credenciales que prueban quién eres: un token o usuario y contraseña.CookieDevuelve las cookies que el servidor guardó antes.HostIndica el dominio solicitado: permite que un servidor aloje muchos sitios.If-Modified-SincePide el recurso solo si cambió después de esa hora.If-None-MatchPide el recurso solo si su ETag difiere: así revalida la caché.OriginIndica el origen de la petición; lo añade el navegador y CORS se basa en él.RangePide solo una parte del archivo: la base de la reanudación y del salto en vídeo.RefererIndica la página de procedencia; el error ortográfico quedó fijado en el estándar.User-AgentDescribe el navegador y el dispositivo; hoy casi todo es camuflaje.Sec-Fetch-DestDice para qué es la petición: imagen, script, documento.Sec-Fetch-ModeIndica si la petición es del mismo origen, CORS o navegación.Sec-Fetch-SiteDice si la petición viene del mismo sitio o de otro.DNTPide no ser rastreado; no obliga a nada y suele ignorarse.ExpectConsulta al servidor antes de enviar un cuerpo grande.ForwardedGuarda los datos originales del cliente tras pasar por proxies.FromLleva el correo de quien hace la petición; los rastreadores lo usan de contacto.If-MatchSolo procede si el ETag coincide: evita sobrescribir cambios ajenos.If-RangeReanuda si el archivo no cambió; si no, empieza de cero.Max-ForwardsLimita por cuántos proxies puede pasar la petición.Proxy-AuthorizationCredenciales para el proxy, no para el servidor de origen.TELista las codificaciones de transferencia aceptadas.Upgrade-Insecure-RequestsPide al servidor que convierta los enlaces http en https.X-Forwarded-ForLleva la IP original del cliente a través de proxies; no es estándar pero se usa mucho.X-Forwarded-ProtoIndica si la petición original llegó por http o https.X-Requested-WithUna convención antigua para marcar peticiones hechas por JavaScript.Accept-CharsetEnumera las codificaciones de caracteres que el cliente acepta; hoy apenas se usa.If-Unmodified-SincePide al servidor que actúe solo si el recurso no cambió desde esa hora.Sec-CH-UAInforma la marca y la versión mayor del navegador; sustituye al User-Agent.Sec-CH-UA-MobileDice solo si el dispositivo es un móvil; una única marca verdadero o falso.Sec-CH-UA-PlatformInforma desde qué sistema operativo llega la petición; la versión va aparte.Save-DataIndica al servidor que el usuario quiere ahorrar datos y puede recibir una versión ligera.Device-MemoryInforma aproximadamente cuánta memoria tiene el dispositivo; el valor es impreciso a propósito.Early-DataMarca una petición enviada como datos tempranos, antes de terminar el saludo.Access-Control-Request-MethodPregunta de antemano qué método usará la petición real; solo va en la comprobación previa.Access-Control-Request-HeadersPregunta de antemano qué cabeceras llevará la petición real; solo va en la comprobación previa.Sec-PurposeMarca la petición como especulativa; prefetch significa que aún no se ha hecho clic.Sec-CH-UA-ArchInforma de la arquitectura de la CPU: arm o x86.Sec-CH-UA-ModelInforma del modelo del dispositivo; en la práctica solo lo rellenan los móviles.Sec-CH-UA-Platform-VersionInforma de la versión del sistema operativo; acompaña a Sec-CH-UA-Platform.X-Forwarded-HostEl Host original que pidió el navegador, antes de que un proxy lo reescribiera.X-Real-IPEl proxy pasa aquí la dirección original del cliente; no es estándar, pero se usa mucho.Alt-UsedAvisa de que el cliente llegó por Alt-Svc, lo que evita bucles.Sec-WebSocket-KeyUn valor aleatorio al pedir el cambio a WebSocket; el servidor lo devuelve procesado.Sec-WebSocket-VersionLa versión del protocolo WebSocket solicitada; en la práctica siempre es 13.Last-Event-IDEnvía el último id recibido para reanudar un flujo de eventos interrumpido.TraceparentLleva el id de traza que enlaza una petición por todos los servicios que atraviesa.BaggageLleva contexto de clave–valor que viaja con la petición entre servicios.Idempotency-KeyUna clave para que el servidor trate una petición repetida como la misma; común en pagos.PreferIndica al servidor lo que el cliente preferiría; el servidor puede o no atenderlo.Sec-GPCSeñal del navegador de que la persona no quiere que vendan ni compartan sus datos.Sec-CH-Prefers-Color-SchemeIndica al servidor si la persona prefiere el tema claro u oscuro.Sec-CH-UA-Full-Version-ListLista las versiones completas del navegador y sus motores; sustituye a User-Agent.

Cabeceras de respuesta56

Cabeceras que añade el servidor al responder.

Access-Control-Allow-OriginIndica qué orígenes pueden leer esta respuesta: el núcleo de CORS.Access-Control-Allow-MethodsLista los métodos permitidos en peticiones de otro origen.Access-Control-Allow-HeadersLista las cabeceras permitidas en peticiones de otro origen.Access-Control-Allow-CredentialsDecide si las peticiones de otro origen pueden llevar cookies.Access-Control-Max-AgeIndica cuánto se puede cachear el resultado del preflight.AgeCuánto lleva la respuesta en la caché.AllowLista los métodos que admite la dirección; acompaña a un 405.Content-DispositionDecide si se muestra o se descarga, y lleva el nombre del archivo.Content-Security-PolicyControla de dónde pueden venir scripts e imágenes: la valla contra XSS.ETagUna huella de esta versión: si cambia el contenido, cambia la etiqueta y la caché lo nota.ExpiresMarca el momento tras el cual la respuesta se considera vieja.Last-ModifiedCuándo cambió por última vez; las peticiones condicionales lo comparan.LocationLa dirección a la que ir; acompaña a las redirecciones y al 201.Permissions-PolicyControla qué documentos pueden usar cámara, micrófono o ubicación.Referrer-PolicyDecide cuánta información de procedencia se envía.Retry-AfterIndica cuándo reintentar; acompaña a un 429 o un 503.ServerNombra el software del servidor; demasiado detalle da pistas a los atacantes.Set-CookieColoca una cookie en el navegador; añade HttpOnly y Secure para protegerla.Strict-Transport-SecurityIndica al navegador que use solo https en este sitio a partir de ahora.Timing-Allow-OriginPermite que otro origen lea las mediciones de rendimiento.VaryIndica qué cabeceras cambian la respuesta; la caché se guía por ella.WWW-AuthenticateIndica el esquema de autenticación; acompaña a un 401.X-Content-Type-OptionsImpide que el navegador adivine otro tipo de contenido.X-Frame-OptionsImpide que otros sitios inserten esta página en un marco.X-XSS-ProtectionActivaba un antiguo filtro XSS del navegador; hoy lo sustituye CSP.Cross-Origin-Opener-PolicyAísla el contexto para que otros orígenes no retengan la ventana.Cross-Origin-Resource-PolicyIndica qué orígenes pueden siquiera cargar este recurso.Cross-Origin-Embedder-PolicyExige que los recursos de otro origen den permiso explícito.Content-RangeIndica qué parte del total se envió; acompaña a un 206.Accept-RangesIndica si admite peticiones por rango; bytes significa que se puede reanudar.Accept-PatchEnumera los formatos de parche que acepta el recurso.Accept-PostEnumera los tipos de contenido que el recurso acepta en un POST.Alt-SvcAnuncia otra ruta al mismo servicio; suele usarse para indicar HTTP/3.Clear-Site-DataOrdena al navegador borrar los datos guardados; se usa al cerrar sesión.LinkSeñala recursos relacionados desde la cabecera; también sugiere precargas.NELDefine adónde debe informar el navegador los errores de red que encuentre.Report-ToRegistra puntos con nombre a los que se enviarán los informes.Server-TimingInforma cuánto tardó cada etapa dentro del servidor.SourceMapSeñala el mapa que lleva de vuelta al código original sin empaquetar.X-DNS-Prefetch-ControlActiva o desactiva la búsqueda anticipada de DNS del navegador.X-Permitted-Cross-Domain-PoliciesControla si los complementos antiguos pueden cargar datos de este origen.X-Robots-TagPasa reglas de indexación a los robots en una cabecera, útil para imágenes y PDF.Origin-Agent-ClusterPide al navegador que aísle este origen en su propio grupo.Proxy-AuthenticateIndica cómo quiere el proxy que el cliente demuestre su identidad.Access-Control-Expose-HeadersEnumera qué cabeceras de respuesta puede leer un script.CDN-Cache-ControlUna regla de caché dirigida solo a la red de entrega; los navegadores la ignoran.Accept-CHEnumera las client hints que quiere el servidor; el navegador las envía desde la siguiente petición.Critical-CHMarca hints como críticas: el navegador repite la primera petición con ellas.Reporting-EndpointsIndica adónde enviar los informes de error; sustituye al antiguo Report-To.X-Powered-ByRevela la tecnología del servidor; no aporta nada, así que suele quitarse.X-CacheDice si un CDN respondió desde caché; HIT significa que no se llegó al origen.RefreshOrdena ir a otra página tras unos segundos; no es estándar, pero todos lo obedecen.Sec-WebSocket-AcceptDevuelve la clave del cliente procesada de forma fija; sin coincidencia no hay conexión.Speculation-RulesDa al navegador reglas sobre qué URL precargar o prerrenderizar.No-Vary-SearchIndica qué parámetros de consulta se pueden ignorar al buscar en caché.X-UA-CompatibleIndicaba al viejo Internet Explorer qué modo de renderizado usar.

En ambos sentidos22

Cabeceras que pueden aparecer en cualquiera de los dos lados.

Cache-ControlDefine cuánto y dónde se puede cachear: aquí se decide media performance.ConnectionIndica si mantener la conexión; HTTP/2 ya no lo usa.Content-EncodingIndica la compresión aplicada al cuerpo.Content-LanguageIndica el idioma en que está escrito el cuerpo.Content-LengthIndica el tamaño del cuerpo en bytes.Content-TypeDeclara el tipo de contenido y la codificación; si falla, una imagen sale como texto.DateEl momento en que se generó el mensaje.PragmaUna cabecera de caché antigua; hoy la sustituye Cache-Control.TrailerAnuncia qué cabeceras vendrán después del cuerpo.Transfer-EncodingDescribe cómo se trocea el cuerpo; con chunked no hace falta saber el tamaño de antemano.UpgradePropone cambiar de protocolo; forma pareja con un 101.ViaRegistra los proxies por los que pasó el mensaje.WarningLlevaba avisos sobre caché o transformación; ya no se usa.PriorityIndica la urgencia de la petición y si puede entregarse fuera de orden.Content-LocationIndica en qué dirección vive realmente el cuerpo que se acaba de enviar.Keep-AliveIndica cuánto tiempo debe seguir abierta una conexión reutilizada.Content-DigestLleva una suma de verificación del cuerpo para comprobar que llegó intacto.TracestateLleva datos de traza propios de cada proveedor junto a traceparent.Repr-DigestLleva un hash de la representación para que el otro lado compruebe que llegó íntegra.SignatureLa firma del mensaje, para que quien recibe pueda verificar el remitente.Signature-InputIndica qué cubre la firma: qué cabeceras se firmaron y cómo.X-Request-IDUn id por petición que sirve para volver a encontrarla en los registros.

Cómo leerlo

  • El primer dígito del código lleva el significado: 4 apunta a la petición, 5 al servidor.
  • 404 significa "no está"; 403, "está pero no para ti". Confundirlos alarga la depuración.
  • Los nombres de cabecera no distinguen mayúsculas: Content-Type y content-type son la misma.
  • Los problemas de caché y CORS suelen reducirse a una línea de cabecera, visible en la pestaña de red.

Preguntas frecuentes

Q¿En qué se diferencian 404 y 403?

404 dice que no hay nada en esa dirección; 403 dice que sí lo hay, pero no puedes verlo. Algunos servidores responden 404 a propósito para ocultar que el recurso existe.

Q¿Puedo hacer algo ante un 500?

Los códigos que empiezan por 5 son problema del servidor, así que suele quedar solo esperar. Un 502 o un 504 está entre dos servidores y a menudo se resuelve al reintentar poco después.

Q¿Cómo elijo entre 301 y 302?

Usa 301 cuando la dirección se movió definitivamente y 302 cuando es temporal. Ten en cuenta que navegadores y buscadores recuerdan un 301 mucho tiempo, y cuesta revertirlo.

Q¿Las cabeceras distinguen mayúsculas?

No. Content-Type y content-type son la misma, y desde HTTP/2 se envían en minúsculas por definición.

Q¿Por qué aparecen errores CORS?

Cuando una página intenta leer una respuesta de otro origen, el navegador la bloquea salvo que el servidor lo permita con Access-Control-Allow-Origin. El servidor sí respondió: es el navegador quien no entrega el cuerpo a tu código, de ahí que la pestaña de red muestre algo que tu script no puede leer.