Verbotener Anfrage-Header
Ein verbotener Anfrage-Header ist ein HTTP-Header-Name-Wert-Paar, das in einer Anfrage nicht programmatisch gesetzt oder geändert werden kann. Für Header, die in Antworten nicht verändert werden dürfen, siehe verbotener Antwort-Header-Name.
Die Änderung solcher Header ist verboten, weil der Benutzeragent die volle Kontrolle über sie behält. Zum Beispiel ist der Date-Header ein verbotener Anfrage-Header, daher kann dieser Code das Nachrichtenfeld Date nicht setzen:
fetch("https://httpbin.org/get", {
headers: {
Date: new Date().toUTCString(),
},
});
Mit Sec- beginnende Namen sind für die Erstellung neuer Header reserviert, die vor APIs, die Entwicklern die Kontrolle über Header gewähren, sicher sind, wie zum Beispiel fetch(). Verbotene Header sind einer der folgenden:
Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieDateDNTExpectHostKeep-AliveOriginProxy-HeaderSec-HeaderRefererSet-CookieTETrailerTransfer-EncodingUpgradeViaX-HTTP-Method, aber nur, wenn es einen verbotenen Methodennamen enthält (CONNECT,TRACE,TRACK)X-HTTP-Method-Override, aber nur, wenn es einen verbotenen Methodennamen enthältX-Method-Override, aber nur, wenn es einen verbotenen Methodennamen enthält
Hinweis:
Der User-Agent-Header war früher verboten, ist es jedoch nicht mehr. Chrome lässt den Header jedoch immer noch unausgesprochen aus Fetch-Anfragen weg (siehe Chromium-Bug 571722).
Hinweis:
Während der Referer-Header im Standard als verbotener Header aufgeführt ist, behält der Benutzeragent nicht die volle Kontrolle darüber, und der Header kann programmatisch geändert werden. Zum Beispiel kann bei Verwendung von fetch() der Referer-Header programmgesteuert über die referrer-Option geändert werden.
Hinweis:
Chrome verbietet auch Access-Control-Request-Private-Network
Siehe auch
- Verwandte Glossarbegriffe: