Accueil·Codes et en-têtes HTTP
Publicité

Obtenez votre bonus de plateforme crypto

Des bonus offerts à la simple inscription. Les conditions sont reprises telles quelles de chaque plateforme.

132 codes de statut et en-têtes HTTP

Ce que veulent dire 404 et 500, et ce que font Content-Type ou Cache-Control — une ligne chacun.

Codes de statut

1xx Information4

Une note d'avancement ; la vraie réponse suit.

2xx Succès10

La requête a abouti.

3xx Redirection8

Allez ailleurs — la différence tient au caractère permanent ou temporaire.

4xx Erreur client29

Le problème vient de la requête ; la renvoyer telle quelle échouera encore.

400 Bad RequestLa requête est mal formée et illisible.401 UnauthorizedVous ne vous êtes pas identifié ; se connecter règle en général le problème.402 Payment RequiredPaiement requis : prévu par la norme mais rarement utilisé.403 ForbiddenLe serveur sait qui vous êtes et refuse quand même ; se connecter n'y changera peut-être rien.404 Not FoundRien à cette adresse : l'URL est fausse ou la page a disparu.405 Method Not AllowedL'adresse existe mais n'accepte pas cette méthode.406 Not AcceptableLe serveur ne peut pas fournir le format demandé.407 Proxy Authentication RequiredUn proxy intermédiaire exige d'abord une authentification.408 Request TimeoutLe serveur a attendu, la requête n'est jamais arrivée entièrement.409 ConflictLa requête entre en conflit avec l'état actuel : typique de deux modifications simultanées.410 GoneSupprimé volontairement et sans retour : un adieu plus net qu'un 404.411 Length RequiredLa requête doit indiquer la longueur du corps, ce qu'elle n'a pas fait.412 Precondition FailedUne condition jointe à la requête n'était pas remplie.413 Content Too LargeLe corps envoyé dépasse la taille acceptée par le serveur.414 URI Too LongL'URL est trop longue : souvent trop de paramètres accumulés.415 Unsupported Media TypeLe serveur ne gère pas le type de contenu envoyé.416 Range Not SatisfiableLa plage demandée se situe hors du fichier.417 Expectation FailedL'attente exprimée dans l'en-tête Expect ne peut être satisfaite.418 I'm a teapotUn code humoristique : la théière refuse de faire du café.421 Misdirected RequestCe serveur n'est pas celui qui doit répondre.422 Unprocessable ContentLa syntaxe est correcte mais le contenu enfreint les règles.423 LockedLa ressource est verrouillée.424 Failed DependencyUne requête précédente a échoué, celle-ci ne peut donc aboutir.425 Too EarlyLe serveur refuse de traiter une requête peut-être rejouée.426 Upgrade RequiredIl faut passer à un autre protocole pour continuer.428 Precondition RequiredLa requête doit porter une condition : c'est ainsi qu'on évite les écrasements.429 Too Many RequestsTrop de requêtes ; Retry-After indique quand réessayer.431 Request Header Fields Too LargeLes en-têtes sont trop volumineux : souvent des cookies accumulés.451 Unavailable For Legal ReasonsBloqué pour raisons légales ; le nombre renvoie au roman Fahrenheit 451.

5xx Erreur serveur11

Le problème vient du serveur ; réessayer plus tard en vaut souvent la peine.

En-têtes

En-têtes de requête55

En-têtes ajoutés par le navigateur à l'envoi.

AcceptIndique les formats acceptés par le client.Accept-EncodingIndique les compressions comprises ; gzip ou br réduisent beaucoup le transfert.Accept-LanguageDéclare les langues préférées ; les sites multilingues s'en servent.AuthorizationPorte les identifiants prouvant qui vous êtes : jeton ou identifiant et mot de passe.CookieRenvoie les cookies posés précédemment par le serveur.HostNomme le domaine visé : c'est ce qui permet à un serveur d'héberger plusieurs sites.If-Modified-SinceNe demande la ressource que si elle a changé depuis.If-None-MatchNe demande la ressource que si son ETag diffère : ainsi le cache se revalide.OriginIndique l'origine de la requête ; ajouté par le navigateur, il fonde les décisions CORS.RangeNe demande qu'une partie du fichier : base de la reprise et du déplacement vidéo.RefererIndique la page d'où l'on vient ; la faute d'orthographe est passée dans la norme.User-AgentDécrit le navigateur et l'appareil ; ces chaînes relèvent surtout du camouflage.Sec-Fetch-DestPrécise l'usage de la requête : image, script, document.Sec-Fetch-ModeIndique si la requête est de même origine, CORS ou navigation.Sec-Fetch-SiteDit si la requête vient du même site ou d'un autre.DNTDemande à ne pas être suivi ; sans force contraignante, souvent ignoré.ExpectInterroge le serveur avant d'envoyer un corps volumineux.ForwardedConserve les informations d'origine après passage par des proxys.FromContient l'e-mail de l'auteur de la requête ; les robots s'en servent comme contact.If-MatchN'agir que si l'ETag correspond : évite d'écraser le travail d'autrui.If-RangeReprendre si le fichier n'a pas changé, sinon tout recommencer.Max-ForwardsLimite le nombre de proxys traversés.Proxy-AuthorizationIdentifiants destinés au proxy, non au serveur d'origine.TEIndique les encodages de transfert acceptés.Upgrade-Insecure-RequestsDemande au serveur de passer les liens http en https.X-Forwarded-ForTransporte l'IP d'origine à travers les proxys ; non normalisé mais très répandu.X-Forwarded-ProtoIndique si la requête initiale est arrivée en http ou https.X-Requested-WithUne vieille convention marquant les requêtes issues de JavaScript.Accept-CharsetIndique les encodages de caractères acceptés par le client ; rarement utilisé aujourd'hui.If-Unmodified-SinceDemande au serveur d'agir seulement si la ressource n'a pas changé depuis cette date.Sec-CH-UAIndique la marque et la version majeure du navigateur ; remplace l'User-Agent.Sec-CH-UA-MobileIndique seulement si l'appareil est un téléphone ; un simple vrai ou faux.Sec-CH-UA-PlatformIndique le système d'exploitation d'origine ; la version se demande séparément.Save-DataSignale au serveur que l'utilisateur veut économiser des données ; il peut alléger la réponse.Device-MemoryIndique approximativement la mémoire de l'appareil ; la valeur est volontairement grossière.Early-DataMarque une requête envoyée en données anticipées, avant la fin de la poignée de main.Access-Control-Request-MethodDemande à l'avance la méthode de la vraie requête ; uniquement en préflight.Access-Control-Request-HeadersDemande à l'avance les en-têtes de la vraie requête ; uniquement en préflight.Sec-PurposeSignale une requête spéculative ; prefetch veut dire que rien n'a été cliqué.Sec-CH-UA-ArchIndique l'architecture du processeur : arm ou x86.Sec-CH-UA-ModelIndique le modèle de l'appareil ; en pratique, seuls les mobiles le renseignent.Sec-CH-UA-Platform-VersionIndique la version du système ; il va de pair avec Sec-CH-UA-Platform.X-Forwarded-HostL'hôte d'origine demandé par le navigateur, avant réécriture par un proxy.X-Real-IPUn proxy y transmet l'adresse d'origine du client ; hors norme, mais très répandu.Alt-UsedSignale que le client est venu via Alt-Svc, ce qui évite les boucles.Sec-WebSocket-KeyUne valeur aléatoire envoyée pour passer en WebSocket ; le serveur la renvoie transformée.Sec-WebSocket-VersionLa version du protocole WebSocket demandée ; en pratique toujours 13.Last-Event-IDEnvoie le dernier identifiant reçu pour reprendre un flux d'événements coupé.TraceparentPorte l’identifiant de trace qui relie une requête à travers tous les services traversés.BaggageTransporte un contexte clé-valeur qui suit la requête entre les services.Idempotency-KeyUne clé qui fait traiter une requête répétée comme la même — courant pour les paiements.PreferIndique au serveur ce que le client préférerait ; libre à lui de le suivre.Sec-GPCSignal du navigateur indiquant que la personne refuse la vente ou le partage de ses données.Sec-CH-Prefers-Color-SchemeIndique si la personne préfère un thème clair ou sombre.Sec-CH-UA-Full-Version-ListListe les versions complètes du navigateur et de ses moteurs — remplace User-Agent.

En-têtes de réponse56

En-têtes ajoutés par le serveur à la réponse.

Access-Control-Allow-OriginNomme les origines autorisées à lire la réponse : le cœur de CORS.Access-Control-Allow-MethodsListe les méthodes autorisées en requête cross-origine.Access-Control-Allow-HeadersListe les en-têtes autorisés en requête cross-origine.Access-Control-Allow-CredentialsDétermine si les requêtes cross-origine peuvent porter des cookies.Access-Control-Max-AgeIndique la durée de mise en cache du préflight.AgeDepuis combien de temps la réponse est en cache.AllowListe les méthodes acceptées ; accompagne un 405.Content-DispositionDécide de l'affichage ou du téléchargement et porte le nom du fichier.Content-Security-PolicyContrôle l'origine autorisée des scripts et images : la barrière contre le XSS.ETagUne empreinte de cette version : le contenu change, l'étiquette aussi, et le cache le voit.ExpiresIndique l'instant après lequel la réponse est périmée.Last-ModifiedDate de dernière modification ; référence des requêtes conditionnelles.LocationL'adresse suivante ; accompagne les redirections et le 201.Permissions-PolicyContrôle quels documents peuvent utiliser caméra, micro ou position.Referrer-PolicyDétermine la quantité d'information de provenance transmise.Retry-AfterIndique quand réessayer ; accompagne un 429 ou un 503.ServerIndique le logiciel serveur ; trop de détails renseigne les attaquants.Set-CookieDépose un cookie dans le navigateur ; HttpOnly et Secure le sécurisent.Strict-Transport-SecurityImpose au navigateur d'accéder désormais au site en https.Timing-Allow-OriginAutorise une autre origine à lire les mesures de performance.VaryNomme les en-têtes qui font varier la réponse ; les caches s'y fient.WWW-AuthenticateIndique le schéma d'authentification ; accompagne un 401.X-Content-Type-OptionsEmpêche le navigateur de deviner un autre type de contenu.X-Frame-OptionsEmpêche d'autres sites d'intégrer cette page dans un cadre.X-XSS-ProtectionActivait un ancien filtre XSS ; le CSP l'a remplacé.Cross-Origin-Opener-PolicyIsole le contexte pour que d'autres origines ne gardent pas la fenêtre.Cross-Origin-Resource-PolicyPrécise quelles origines peuvent charger cette ressource.Cross-Origin-Embedder-PolicyExige que les ressources tierces intégrées donnent leur accord.Content-RangeIndique la portion envoyée du tout ; accompagne un 206.Accept-RangesIndique si les requêtes par plage sont acceptées ; bytes permet la reprise.Accept-PatchIndique les formats de correctif acceptés par la ressource.Accept-PostIndique les types de contenu acceptés par la ressource en POST.Alt-SvcAnnonce une autre route vers le même service, souvent pour signaler HTTP/3.Clear-Site-DataOrdonne au navigateur d'effacer les données stockées ; utilisé à la déconnexion.LinkSignale des ressources liées depuis l'en-tête, aussi pour suggérer des préchargements.NELDéfinit où le navigateur doit signaler les erreurs réseau rencontrées.Report-ToEnregistre des points nommés vers lesquels les rapports seront envoyés.Server-TimingIndique le temps pris par chaque étape à l'intérieur du serveur.SourceMapIndique la carte qui ramène au code source d'origine.X-DNS-Prefetch-ControlActive ou désactive la résolution DNS anticipée du navigateur.X-Permitted-Cross-Domain-PoliciesContrôle si d'anciens greffons peuvent charger des données de cette origine.X-Robots-TagTransmet les règles d'indexation aux robots via un en-tête, utile pour images et PDF.Origin-Agent-ClusterDemande au navigateur d'isoler cette origine dans son propre groupe.Proxy-AuthenticateIndique comment le proxy veut que le client prouve son identité.Access-Control-Expose-HeadersIndique les en-têtes de réponse qu'un script a le droit de lire.CDN-Cache-ControlUne règle de cache destinée au seul réseau de diffusion ; les navigateurs l'ignorent.Accept-CHListe les client hints souhaités ; le navigateur les envoie dès la requête suivante.Critical-CHMarque des hints comme critiques : le navigateur rejoue la première requête.Reporting-EndpointsIndique où envoyer les rapports d'erreur ; il remplace l'ancien Report-To.X-Powered-ByRévèle la technologie du serveur ; sans intérêt, on le supprime en général.X-CacheIndique si un CDN a répondu depuis son cache ; HIT signifie que l'origine n'a pas servi.RefreshDemande d'aller ailleurs après quelques secondes ; hors norme, mais suivi partout.Sec-WebSocket-AcceptRenvoie la clé du client transformée selon une règle fixe ; sinon la connexion échoue.Speculation-RulesDonne au navigateur des règles sur les URL à précharger ou prérendre.No-Vary-SearchIndique quels paramètres de requête peuvent être ignorés pour retrouver un cache.X-UA-CompatibleIndiquait à l’ancien Internet Explorer quel mode de rendu utiliser.

Dans les deux sens22

En-têtes pouvant figurer des deux côtés.

Cache-ControlDéfinit la durée et le lieu de mise en cache : la moitié de la performance s'y joue.ConnectionIndique si la connexion reste ouverte ; HTTP/2 ne l'utilise plus.Content-EncodingIndique la compression appliquée au corps.Content-LanguageIndique la langue du corps du message.Content-LengthIndique la taille du corps en octets.Content-TypeDéclare le type de média et l'encodage ; mal réglé, une image s'affiche en texte.DateL'instant où le message a été produit.PragmaUn ancien en-tête de cache ; Cache-Control l'a remplacé.TrailerAnnonce les en-têtes qui suivront le corps.Transfer-EncodingDécrit le découpage du corps ; chunked dispense de connaître la taille à l'avance.UpgradePropose de changer de protocole ; va de pair avec un 101.ViaConsigne les proxys traversés.WarningPortait des avertissements sur le cache ou la transformation ; n'est plus utilisé.PriorityIndique l'urgence de la requête et si elle peut passer avant les autres.Content-LocationIndique l'adresse réelle du corps qui vient d'être envoyé.Keep-AliveIndique combien de temps une connexion réutilisée reste ouverte.Content-DigestTransporte une empreinte du corps pour vérifier qu'il est arrivé intact.TracestateTransporte des données de trace propres à chaque outil, à côté de traceparent.Repr-DigestPorte un hachage de la représentation pour vérifier qu’elle est arrivée intacte.SignatureLa signature du message, qui permet de vérifier l’expéditeur.Signature-InputPrécise ce que couvre la signature : quels en-têtes ont été signés et comment.X-Request-IDUn identifiant par requête, pour la retrouver dans les journaux.

Comment lire

  • Le premier chiffre du code porte le sens : 4 désigne la requête, 5 le serveur.
  • 404 veut dire « absent » ; 403, « présent mais interdit ». Les confondre rallonge le débogage.
  • Les noms d'en-tête sont insensibles à la casse : Content-Type et content-type sont identiques.
  • Les soucis de cache et de CORS tiennent souvent à une ligne d'en-tête, visible dans l'onglet réseau.

Questions fréquentes

QQuelle différence entre 404 et 403 ?

404 dit qu'il n'y a rien à cette adresse ; 403 dit qu'il y a quelque chose, mais pas pour vous. Certains serveurs renvoient volontairement 404 pour masquer l'existence même de la ressource.

QPuis-je faire quelque chose face à un 500 ?

Les codes commençant par 5 relèvent du serveur : le plus souvent, il ne reste qu'à attendre. Un 502 ou un 504 se situe entre deux serveurs et se résout souvent en réessayant peu après.

QComment choisir entre 301 et 302 ?

301 quand l'adresse a changé définitivement, 302 pour un détour temporaire. Navigateurs et moteurs retiennent longtemps un 301 : difficile de revenir en arrière.

QLes noms d'en-tête sont-ils sensibles à la casse ?

Non. Content-Type et content-type désignent le même en-tête, et depuis HTTP/2 ils circulent en minuscules par définition.

QPourquoi les erreurs CORS surviennent-elles ?

Quand une page tente de lire une réponse d'une autre origine, le navigateur bloque, sauf autorisation du serveur via Access-Control-Allow-Origin. Le serveur a bien répondu : c'est le navigateur qui refuse de transmettre le corps à votre code, d'où une réponse visible dans l'onglet réseau mais illisible par le script.