http headers大总结

666 阅读6分钟

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