--- title: Forbidden header name (禁止ヘッダー名) slug: Glossary/Forbidden_header_name tags: - Fetch - Glossary - HTTP - Headers - forbidden - ヘッダー translation_of: Glossary/Forbidden_header_name ---
禁止ヘッダー名はプログラムから変更することができない HTTP ヘッダーの名前、特に、 HTTP リクエストヘッダーの名前です (反対に、{{Glossary("Forbidden response header name", "禁止レスポンスヘッダー名")}}もあります)。
このようなヘッダーの変更が禁じられているのは、ユーザーエージェントがこれらを完全に制御するからです。特に `Sec-
` で始まるヘッダー名は、{{domxref("XMLHttpRequest")}} のように Fetch を使用して開発者がヘッダーを通じて制御できる {{glossary("API")}} に影響されずに、新しいヘッダーを追加できるよう予約されています。
禁止ヘッダー名は Proxy-
や Sec-
で始まるもの、または以下の名前の 1 つです。
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Cookie2
Date
DNT
Expect
Feature-Policy
Host
Keep-Alive
Origin
Proxy-
Sec-
Referer
TE
Trailer
Transfer-Encoding
Upgrade
Via
注: User-Agent
ヘッダーは仕様としては禁止ではなくなりました (Firefox 43 で実装された forbidden header name list を参照)。 Fetch の Headers オブジェクトや、XHR の setRequestHeader() などでこのヘッダーを設定することが可能です。ただし、 Chrome は Fetch リクエストからこのヘッダーを暗黙的に削除します(Chromium バグ 571722 を参照)。