MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/a3e7b5301fea

Forbidden header name

Forbidden header name とは HTTP ヘッダー の名前のうちプログラムからの変更が禁じられているものです。

変更を禁じることで、これらのヘッダーをユーザーエージェントが完全にコントロールすることができます。特に `Sec-` で始まるヘッダ名は、ヘッダーを制御することのできる Fetch ベースの API や XMLHttpRequest などを気にすることなく、将来新しいヘッダーを追加できるように予約されています。

Forbidden headers name は Proxy- や Sec- で始まる名前のほか、以下の名前が該当します。

  • Accept-Charset
  • Accept-Encoding
  • Access-Control-Request-Headers
  • Access-Control-Request-Method
  • Connection
  • Content-Length
  • Cookie
  • Cookie2
  • Date
  • DNT
  • Expect
  • Host
  • Keep-Alive
  • Origin
  • Proxy-
  • Sec-
  • Referer
  • TE
  • Trailer
  • Transfer-Encoding
  • Upgrade
  • Via

Fetch Standard に記載された forbidden header name のリスト (Firefox 43 で実装されました) に従い、 User-Agent ヘッダーは変更禁止ではなくなりました。そのため Fetch の Headers オブジェクトや、XHR の setRequestHeader() などでこのヘッダーを設定することが可能です。

ドキュメントのタグと貢献者

 このページの貢献者: unarist
 最終更新者: unarist,