Verbotenes Anfrage-Headerfeld
Ein verbotenes Anfrage-Headerfeld ist ein HTTP-Header Name-Wert-Paar, das in einer Anfrage nicht programmatisch gesetzt oder modifiziert werden kann. Für Header, die in Antworten nicht modifiziert werden dürfen, siehe verbotener Antwortheader-Name.
Die Modifikation solcher Header ist verboten, da der Benutzeragent die vollständige Kontrolle darüber behält. Zum Beispiel ist der Date
-Header ein verbotenes Anfrage-Headerfeld, daher kann dieser Code das Date
-Feld der Nachricht nicht setzen:
fetch("https://httpbin.org/get", {
headers: {
Date: new Date().toUTCString(),
},
});
Namen, die mit Sec-
beginnen, sind reserviert für das Erstellen neuer Header, die von APIs sicher sind, die Entwicklern Kontrolle über Header gewähren, wie etwa fetch()
. Verbotene Header sind eines 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
, aber nur wenn er einen verbotenen Methodennamen enthält (CONNECT
,TRACE
,TRACK
)X-HTTP-Method-Override
, aber nur wenn er einen verbotenen Methodennamen enthältX-Method-Override
, aber nur wenn er einen verbotenen Methodennamen enthält
Hinweis:
Der User-Agent
-Header war früher verboten, ist es aber nicht mehr. Chrome lässt den Header jedoch noch immer stillschweigend aus Fetch-Anfragen weg (siehe Chromium Fehler 571722).
Hinweis:
Während der Referer
-Header in der Spezifikation als verbotener Header aufgelistet ist, hat der Benutzeragent nicht die vollständige Kontrolle darüber und der Header kann programmatisch modifiziert werden. Zum Beispiel kann bei Verwendung von fetch()
der Referer
-Header programmatisch über die referrer
-Option modifiziert werden.
Siehe auch
- Verwandte Glossarbegriffe: