Запрещённое имя заголовка

Запрещённое имя заголовка (Forbidden header name) – это имя какого-либо HTTP заголовка, который нельзя изменить программно.

Изменение этих заголовков запрещено, потому что пользовательский агент (браузер) удерживает полный контроль над ними. Заголовки, чьи имена начинаются с Sec-, зарезервированы для создания новых заголовков, безопасных (отделённых) от APIs, используемого Fetch, которое даёт разработчику контроль над заголовками. Утверждение также верно и для XMLHttpRequest.

Запрещённые имена заголовков начинаются с 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

Примечание: Заголовок User-Agent более не запрещён, как указано в спецификации — посмотрите список запрещённых заголовков (он был реализован в Firefox 43,) так что User-Agent может быть установлен через в объект Headers (en-US) под Fetch через вызов метода setRequestHeader().