Verbotenes Anforderungsheader

Ein verbotenes Anforderungsheader ist ein HTTP-Header Name-Wert-Paar, das in einer Anfrage nicht programmgesteuert festgelegt oder geändert werden kann. Für Header, die in Antworten nicht geändert werden dürfen, siehe verbotene Antwortheadernamen.

Das Ändern solcher Header ist verboten, da der Benutzeragent die vollständige Kontrolle über sie behält. Zum Beispiel ist der Date-Header ein verbotener Anforderungsheader, sodass dieser Code das Nachrichtenfeld Date nicht setzen kann:

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 vor APIs geschützt sind, welche Entwicklern die Kontrolle über Header gewähren, wie zum Beispiel fetch(). Verbotene Header sind eine der folgenden:

Hinweis: Der User-Agent-Header war früher verboten, ist es aber nicht mehr. Allerdings ignoriert Chrome den Header weiterhin stillschweigend bei Fetch-Anfragen (siehe Chromium Bug 571722).

Hinweis: Obwohl der Referer-Header in der Spezifikation als verbotener Header aufgeführt ist, behält der Benutzeragent nicht die volle Kontrolle darüber und der Header kann programmgesteuert geändert werden. Zum Beispiel kann beim Verwenden von fetch() der Referer-Header programmgesteuert über die referrer-Option geändert werden.

Siehe auch