Verbotenes Anforderungsheader
Ein verbotenes Anforderungsheader ist ein Name-Wert-Paar eines HTTP-Headers, das in einer Anfrage nicht programmgesteuert gesetzt oder geändert werden kann. Für Header, die in Antworten nicht geändert werden dürfen, siehe verbotener Antwortheadername.
Die Änderung solcher Header ist verboten, da der Benutzeragent die volle Kontrolle über sie behält.
Zum Beispiel ist der Date
Header ein verbotener Anforderungsheader, 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 geschützt sind, die Entwicklern die Kontrolle über Header geben, wie zum Beispiel fetch()
.
Verbotene Header sind eine der folgenden:
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Date
DNT
Expect
Host
Keep-Alive
Origin
Permissions-Policy
Proxy-
HeaderSec-
HeaderReferer
TE
Trailer
Transfer-Encoding
Upgrade
Via
X-HTTP-Method
, jedoch nur, wenn er einen verbotenen Methodennamen enthält (CONNECT
,TRACE
,TRACK
)X-HTTP-Method-Override
, jedoch nur, wenn er einen verbotenen Methodennamen enthältX-Method-Override
, jedoch nur, wenn er einen verbotenen Methodennamen enthält
Hinweis:
Der User-Agent
Header war früher verboten, ist es aber nicht mehr. Jedoch lässt Chrome den Header weiterhin stillschweigend in Fetch-Anfragen weg (siehe Chromium Bug 571722).
Hinweis:
Obwohl der Referer
Header in der Spezifikation als verbotener Header gelistet ist, behält der Benutzeragent nicht die volle Kontrolle über ihn, und der Header kann programmgesteuert geändert werden. Zum Beispiel kann der Referer
Header bei Verwendung von fetch()
über die referrer
Option programmgesteuert geändert werden.
Siehe auch
- Verwandte Glossarbegriffe: