原创分享 http headers 大总结

eudore · 2020年04月12日 · 567 次阅读

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 安全相关。

合并的大图,收藏的请保存。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册