Forbidden header name

1,227 阅读1分钟

有时候我们想在请求中设置http的头信息,必须注意的是有的http头是只有user-agent才能设置的,规范和浏览器都没有放开权限使我们可以修改这些http头信息

简单来说就是: 浏览器其实默默的把很多脏活累活都干了,你想干也不让你干

如果,浏览器只支持gzip,但是你非得设置个br, gzip, deflate,浏览器肯定是不干的

fetch('http://baidu.com',{method: 'get',mode: 'cors',headers: {'Accept-Encoding': 'br, gzip, deflate' }});
Forbidden header name

Forbidden header name 是不能以编程方式修改的HTTP报头的名称.

由于user agent (比如浏览器)完全控制了这些报文头信息,修改这些http报文头是被禁止的,以“Sec-”开头的名称是保留的,用于在使用Fetch的api中创建安全的新标头,该api授予开发人员对标头(如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

参考