通用首部字段通用首部字段是指请求报文和响应报文都会使用到的首部字段 。
先来看下都有哪些字段:
文章插图
Cache-Control通过指定 Cache-Control 的指令,就能操作缓存的工作机制 。
一般在客户端和服务端之间还存在一个缓存服务器,如果请求的资源在缓存服务器中有,就不会再请求源服务器,提高了请求响应的效率 。
指令的参数可以多选,通过“,”分隔 。
Cache-Control: private, max-age=0, no-cache
public 指令Cache-Control: public
当使用 public 指令时,明确表明其他用户也可以利用缓存 。private 指令
Cache-Control: private
当指定 private 指令后,响应只以特定的用户作为对象,这与 public 指令的行为相反 。缓存服务器会对该特定用户提供资源缓存的服务,对于其他用户发送过来的请求,代理服务器则不会返回缓存 。
no-cache 指令
Cache-Control: no-cache
使用 no-cache 指令可以防止从缓存中拿过期的数据 。在请求中如果包含该指令,则客户端将不会接收缓存过的响应,中间的缓存服务器会把请求转发给源服务器 。
如果响应中包含该指令,缓存服务器会向源服务器进行资源有效期的确认,如果是过期的资源则不缓存 。
no-store 指令
Cache-Control: no-store
该指令规定缓存不能在本地存储请求或响应的任一部分 。这里我们要和上面那个 no-cache 指令要区分开,no-store才是真正不进行缓存,no-cache 只是不对过期的资源进行缓存 。ConnectionConnection 有两个作用:控制不再转发给代理的首部字段、管理持久连接 。
- 控制不再转发给代理的首部字段Connection: 不再转发的首部字段名
- 管理持久连接
Connection: close
当服务器端想明确断开连接时,则指定 Connection 首部字段的值为 Close 。Date首部字段 Date 表明创建 HTTP 报文的日期和时间 。
Trailer首部字段 Trailer 会事先说明在报文主体后记录了哪些首部字段 。该首部字段可应用在 HTTP/1.1 版本分块传输编码时 。
Transfer-Encoding该字段规定了传输报文主体时采用的编码方式 。HTTP/1.1 的传输编码方式仅对分块传输编码有效 。
请求首部字段请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容 。
文章插图
常用字段具体说明
Accept
Accept: text/html,application/xhtml+xml,application/xml;q=0.3
该字段可以通知服务器 客户端能够接收处理的媒体类型及优先级 。比如,如果浏览器不支持 PNG 图片的显示,那 Accept 就不指定 image/png,而指定可处理的 image/gif 和 image/jpeg 等图片类型 。若想要给显示的媒体类型增加优先级,则使用 q= 来额外表示权重值 。用分号(;)进行分隔 。权重值 q 的范围是 0~1(可精确到小数点 后 3 位),且 1 为最大值 。不指定权重 q 值时,默认权重为 q=1.0 。
Accept-Charset
Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
通知服务器 客户端支持的字符集及字符集的相对优先顺序 。Accept-Encoding
Accept-Encoding: gzip, deflate
首部字段用来告知服务器 客户端支持的内容编码及内容编码的优先级顺序 。可一次性指定多种内容编码 。Accept-Language
Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
用来告知服务器 客户端能够处理的自然 语言集(指中文或英文等),以及自然语言集的相对优先级 。可一次 指定多种自然语言集 。Authorization
Authorization: Basic dWVub3NlbjpwYXNzd29yZA==
首部字段 Authorization 是用来告知服务器,客户端的认证信息(证书值) 。User-Agent
User-Agent: Mozilla/5.0 (windows NT 6.1; WOW64; rv:13.0)
首部字段 User-Agent 会将创建请求的浏览器和用户代理名称等信息传 达给服务器 。由网络爬虫发起请求时,有可能会在字段内添加爬虫作者的电子邮件地址 。此外,如果请求经过代理,那么中间也很可能被添加上代理服务器的名称 。
响应首部字段响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息 。
推荐阅读
- SEO必备:HTTP状态代码全解读
- 什么是linux内核?linux内核模块是什么?内核模块详解
- HTTP gzip压缩
- 一文详解Liquibase如何自动化数据库脚本部署
- SQLSERVER也能部署在linux环境?SQLServer2019在CENTOS7部署详解
- netty系列之:性能为王!创建多路复用http2服务器
- 长链接、短链接与连接池
- 2020考研英语试题及分数详解
- 详解:阳台可以摆放鞋柜吗
- 详解:你所不知的厕所风水知识