Verbotener Anforderungsheader

Ein verbotener Anforderungsheader ist ein Name-Wert-Paar eines HTTP-Headers, das in einer Anfrage nicht programmatisch gesetzt oder geändert werden kann. Für Header, die in Antworten nicht geändert werden dürfen, siehe verbotener Antwortheadername.

Das Modifizieren solcher Header ist verboten, weil der User-Agent 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:

js
fetch("https://httpbin.org/get", {
  headers: {
    Date: new Date().toUTCString(),
  },
});

Namen, die mit Sec- beginnen, sind für die Erstellung neuer Header reserviert, die sicher vor APIs sind, die Entwicklern die Kontrolle über Header geben, wie z. B. fetch(). Verbotene Header sind einer der folgenden:

Hinweis: Der User-Agent Header war früher verboten, ist es aber nicht mehr. Chrome entfernt den Header jedoch immer noch stillschweigend aus Fetch-Anfragen (siehe Chromium Fehler 571722).

Hinweis: Während der Referer Header in der Spezifikation als verbotener Header aufgeführt ist, behält der User-Agent nicht die volle Kontrolle darüber und der Header kann programmatisch geändert werden. Beispielsweise kann bei der Verwendung von fetch() der Referer Header über die referrer-Option programmatisch geändert werden.

Siehe auch