通用首部
Cache-Control
private
客户端可以缓存,缓存服务器不可以缓存
Transfer-Encoding(逐跳传输消息首部)
chunked
分块编码:主要应用于如下场景,即要传输大量的数据,但是在请求在没有被处理完之前响应的长度是无法获得的。
Date:报文创建时间
Via:代理服务器相关信息
Connection
keep-alive
持久连接(http1.1默认),多个请求复用单个连接
close
表明客户端或服务器想要关闭该网络连接(http1.0默认)
请求首部
Accept:用户代理可处理的媒体类型
image/*;q=0.8
q为权重,该类型优先级
示例
Accept: application/json, text/plain, */*
...
Accept-Encoding:优先的内容编码
gzip
br
identity
*
示例: Accept-Encoding: gzip, deflate, br
...
Host:服务器地址(ip地址或者域名),端口可选,默认80
示例:Host:127.0.0.1:3000
Range:告知服务器返回文件的哪一部分
示例:Range: bytes=200-1000, 2000-6576, 19000-
If-Range:条件满足时,Range字段才会生效
User-Agent :客户端信息
If-Match:条件请求,当ETag值匹配时返回资源
示例:If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-Modified-Since:条件请求,返回在这个时间之后修改过的资源
示例:If-Modified-Since: Wed, 21 Oct 2020 07:28:00 GMT
If-None-Match:当且仅当服务器上没有任何资源的 ETag 属性值与这个首部中列出的相匹配的时候,服务器端会才返回所请求的资源
示例:If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
Referer: 当前请求的来源链接,浏览器环境下不能自定义,因此服务端可以使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化,还有防盗链
来源页面采用的协议为表示本地文件的 "file" 或者 "data" URI,Referer不会被发送
当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(HTTPS),Referer不会被发送
响应首部
Accept-Ranges :告知服务器是否能处理范围请
求
bytes:可处理
none:不能处理
ETag:资源唯一性标识(当资源更新时,ETag 值也需要更新)
强 ETag 值:不论实体发生多么细微的变化都会改变其值。
示例:ETag: "usagi-1234"
弱 ETag 值:只有资源发生了根本改变,产
生差异时才会改变 ETag 值。
示例:ETag: W/"usagi-1234"
Location:重定向url,当响应中包含此字段时,大部分浏览器都会强制性访问重定向url
Server :HTTP 服务器应用程序信息
Strict-Transport-Security
通知浏览器只能通过HTTPS访问当前资源
Accept-Control-Allow-Origin
指定响应的资源是否被允许与给定的origin共享
Content-Security-Policy
CSP安全策略
实体首部
Allow:枚举资源所支持的 HTTP 方法的集合
Content-Encoding:实体内容采用的编码方式
对应Accept-Encoding
Content-Length:实体内容大小(当采用了压缩或者分块传输时就没有这个字段了)
Content-Range:数据片段在整个文件中的位置
对应Range
示例:Content-Range: bytes 5001-10000/10000
Content-Type:实体内容的媒体类型
对应Accept
Content-Disposition:指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地
inline
默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示
attachment
消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将filename的值预填为下载后的文件名,假如它存在的话
filename