Nom d'en-tête interdit
Un nom d'en-tête interdit est un nom d'en-tête HTTP qui ne peut être modifié par programmation, spécifiquement, un nom d'en-tête de requête HTTP (contraste avec Nom d'en-tête de réponse interdit).
Les modifications de ces en-têtes sont interdites pour que l'agent utilisateur garde un total contrôle sur eux.
Par exemple, l'en-tête Date est un en-tête de requête interdit, donc ce code ne peut pas définir le champ Date du message :
fetch("https://httpbin.org/get", {
headers: {
Date: new Date().toUTCString(),
},
});
Les noms commençant par Sec- sont réservés à la création de nouveaux en-têtes protégés des API qui donnent aux développeur·euse·s le contrôle sur les en-têtes, comme fetch().
Les en-têtes interdits sont l'un des suivants :
Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieDateDNTExpectHostKeep-AliveOriginPermissions-Policy- En-tête
Proxy- - En-tête
Sec- RefererTETrailerTransfer-EncodingUpgradeViaX-HTTP-Method, mais uniquement lorsqu'il contient un nom de méthode interdit (CONNECT,TRACE,TRACK)X-HTTP-Method-Override, mais uniquement lorsqu'il contient un nom de méthode interditX-Method-Override, mais uniquement lorsqu'il contient un nom de méthode interdit
Note :
L'en-tête User-Agent était auparavant interdit, mais ne l'est plus. Cependant, Chrome ignore toujours silencieusement cet en-tête dans les requêtes Fetch (voir Chromium bug 571722).
Note :
Bien que l'en-tête Referer soit listé comme interdit dans la spécification (angl.), l'agent utilisateur n'en garde pas le contrôle total et l'en-tête peut être modifié par programmation. Par exemple, lors de l'utilisation de fetch(), l'en-tête Referer peut être modifié par programmation via l'option referrer.
Voir aussi
- Terme associé du glossaire :