http headers
本文记录自己使用和理解到的headers,参考MDN,如有不同看法请发评论。
方向表示是请求header还是响应header或者两种情况都有,r是请求header,w是响应header,空白就是双向header;作用和解释如果是空白就是我不清楚。
Name | 方向 | 作用 | 解释 |
---|---|---|---|
Accept | r | 通用 | 请求时告诉服务端可以接受的响应类型,用于协商,服务端会按照顺序和权重返回合适的响应数据类型。 |
Accept-Charset | r | 通用 | 同上 客户端接受的字符集。 |
Accept-Encoding | r | 通用 | 同上 客户端可以接受的压缩编码。 |
Accept-Language | r | 通用 | 同上 客户端接受语言。 |
Accept-Ranges | w | Range | 在Range请求时返回,标识返回类型,通常返回Accept-Ranges: bytes 。 |
Access-Control-Allow-Credentials | w | CORS | 允许浏览器读取response的认证内容。 |
Access-Control-Allow-Headers | w | CORS | 实际请求中允许携带的首部字段。 |
Access-Control-Allow-Methods | w | CORS | 实际请求所允许使用的 HTTP 方法。 |
Access-Control-Allow-Origin | w | CORS | 指定允许请求的源站,一般该响应值为请求的Origin,部分阅览器将不再支持* 。 |
Access-Control-Expose-Headers | w | CORS | 允许客户端读取响应额外的headers。 |
Access-Control-Max-Age | w | CORS | preflight请求的结果能够被缓存多久。 |
Access-Control-Request-Headers | r | CORS | 实际请求需要附加的header。 |
Access-Control-Request-Method | r | CORS | 实际请求的方法。 |
Age | w | proxy | 代理缓存资源时间。 |
Allow | w | 405 | 在返回405状态码时,记录服务端允许的请求方法。 |
Alt-Svc | w | http3 | 在客户端发起请求后,服务端使用Alt-Svc header表示自己支持的h3地址和版本。 |
Authorization | r | auth | 发送客户端验证信息,未认证或认证失败返回401,然后重新输入认证信息。 |
Cache-Control | cache | 客户端表示是否接受缓存类型,服务端表示如何进行缓存。 | |
Connection | 通用 | 值为Close表示关闭连接,Keep-Alive表示使用长连接,Upgrade在Upgrade机制使用。 | |
Content-Disposition | w | 通用 | 响应body的描述,例如文件下载后的文件名称。 |
Content-Encoding | 通用 | 表示body的编码类型,通常出现就是gzip,是响应协商Accept-Encoding的值。 | |
Content-Language | 通用 | 同上 body使用的语言,响应协商Accept-Language。 | |
Content-Length | 通用 | 同上 body的长度,在不使用分段传输的长连接才会有此header,记录这个body的长度用于区别下一个请求。 | |
Content-Location | 通用 | ||
Content-Range | w | Range | 表示Range请求返回的数据是整体的那一段位置。 |
Content-Security-Policy | w | 安全 CSP | CSP的值,也可以设置在html head meta里面,是安全相关阅览器策略。 |
Content-Type | 通用 | 表示body内容的数据类型,例如json、xml、text、html。 | |
Cookie | r | Cookie | 请求时发送的Cookie键值对数据。 |
Cross-Origin-Resource-Policy | w | ||
DNT | r | chrome | chrome里面有一个选项开启后会发送,表示不希望被追踪,作用未知。 |
Date | 通用 | 表示请求或响应的创建时间。 | |
Digest | w | 通用 | 记录请求资源的摘要。 |
ETag | w | cache | 相当于响应的hash值,用于下次请求时判断是否内容改变。 |
Expect | r | 通用 | 发送Expect: 100-continue 后不会发送body,需要服务端返回100后才会继续发送body,可以让服务端判断是否需要发送body。 |
Expect-CT | w | 安全 CT | 服务端返回证书的CT信息。 |
Expires | w | cache | 记录缓存的过期时间。 |
Forwarded | r | proxy | 和X-Forwarded-For类似,记录经过的代理ip。 |
From | r | 发请求人的联系email。 | |
Host | r | 通用 | http/1.1唯一的必要请求header,记录host值。 |
If-Match | r | cache | 发送之前请求返回的Etag值,如果服务端匹配资源Etag才会响应。 |
If-Modified-Since | r | cache | 发送上传请求该资源响应的Last-Modified值,用于服务端判断资源修改时间在此时间之前就返回304,否在返回200和资源。 |
If-None-Match | r | cache | 发送之前请求返回的Etag值,如果服务端匹配就会返回304,否在返回200和资源。 |
If-Unmodified-Since | r | cache | 判断资源修改时间在此时间之后才会返回200和资源,否在返回412。 |
Keep-Alive | 通用 | 在Connection: Keep-Alive 时的keepalive配置信息。 |
|
Last-Modified | w | cache | 返回资源最后修改时间。 |
Location | w | redirect | 记录重定向返回的新地址,响应码为:301、302、307、308。 |
Origin | r | CORS ws | 表明预检请求或实际请求的源站,以及ws Upgrade时发送客户端地址。 |
Pragma | cache | 兼容http/1.0,作用相当于Cache-Contro。l | |
Proxy-Authenticate | w | proxy auth | 返回代理为认证需要发送认证信息,状态码407,类似www-Authenticate。 |
Proxy-Authorization | r | proxy auth | 发送代理的验证信息。 |
Public-Key-Pins | w | 安全 HPKP | hpkp记录证书的允许的多个hash,hash算法为sha256 sha384 sha512,如果hpkp不匹配阅览器一般会中断请求。 |
Range | r | Range | 表示客户端请求需要服务端返回那一部分数据。 |
Referer | r | 通用 安全 | 表示发送这个请求的引用地址,http会自动发送,https不会自动发送但是可以设置一个meta后就会自动发送。 |
Referrer-Policy | w | 安全 | 表示资源引用策略和CSP类似。 |
Sec-WebSocket-Accept | w | ws | 值为Sec-WebSocket-Key的值加固定字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"然后计算sha1,用于验证ws握手。 |
Sec-WebSocket-Key | r | ws | 随机字符串。 |
Sec-WebSocket-Protocol | r | ws | ws客户端支持的扩展协议。 |
Sec-WebSocket-Version | r | ws | ws协议的版本,通常使用版本为13。 |
Server | w | 通用 | 表示服务端信息,不要返回详细版本信息防止攻击。 |
Set-Cookie | w | Cookie | 返回服务端设置的新的Cookie数据。 |
Trailer | w | 通用 | 在分段传输时,Trailer指定在先返回body后再返回那些header。 |
Transfer-Encoding | w | 通用 | 表示服务端使用的传输编码,例如分段传输。 |
Upgrade | r | ws | 在Upgrade机制时发送该header,例如利用Upgrade机制握手ws时发送Upgrade: websocket header,Upgrade成功则返回101状态码。 |
Upgrade-Insecure-Requests | r | chrome | 将下一个请求发送https协议,在chrome70后出现,如果html mate或header使用CSP响应了这个header,下一个请求会自动变成https,不存在30x重定向的过程。 |
User-Agent | r | 通用 | 记录客户端的信息。 |
Vary | w | 通用 | 表示服务端支持了那个协商的header。 |
WWW-Authenticate | w | auth | 表示客户端需要验证或者验证不正确,和401状态码一起出现,然后需要重新输入认证信息。 |
X-Content-Type-Options | w | 安全 | 强制要求响应返回Content-Type header,否在body作为text显示。 |
X-DNS-Prefetch-Control | w | 用于启用DNS预读取功能,提前解析dns减少请求时间,作用未知。 | |
X-Forwarded-For | r | proxy | 与Forwarded作用一样记录经过的代理ip |
X-Forwarded-Host | r | proxy | 记录最初的请求的Host值。 |
X-Forwarded-Proto | r | proxy | 代理端对端间使用的协议。 |
X-Frame-Options | w | 安全 | 是Frame标签嵌套地址策略。 |
X-Powered-By | w | 通用 | 通常php可能返回Powered-By: PHP/5.2.6 ,暴露了版本信息可能遭到相关版本bug攻击,需要删除。 |
X-XSS-Protection | w | 安全 | XSS安全相关。 |
有疑问加站长微信联系(非本文作者)