第6章 HTTP首部
6.1 http报文首部
6.2 http首部字段
http首部字段根据实际用途分为以下4种类型:
通用首部字段、请求首部字段、响应首部字段、实体首部字段(针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息)
6.3 HTTP/1.1 通用首部字段
cache-control: 取值比较常见的有no-cache,如果在响应头中,代表源服务器跟缓存服务器说,你可以使用缓存,但是每次使用都要通知我一下。如果在请求头中,代表客户端跟缓存服务器说,我不要缓存,你直接从源服务器上拿资源。
1.no-cache指令
2.no-store指令
代表传输的信息是保密的,不允许存储。
3.max-age指令
从客户端的角度:如果请求头中有max-age这个参数,那么,缓存服务器拿到参数后,会根据其值判断资源是否过期,如果过期,会向源服务器重新请求新的资源。
从源服务器角度:如果响应头中有max-age这个参数,那么,源服务器在告诉缓存服务器,我这个资源只要没过期,你都不用跟我要新的。
另外,cache-control可能的取值还有:max-stale、only-if-cache、must-revalidate、proxy-revalidate、no-transform
6.3.2 Connection
connection有2个作用:
1.控制不再转发给代理的首部字段
2.管理持久连接
6.3.3 Date字段
首部字段Date为创建报文的时间。
6.3.4 Pragma
这个字段是http1.1之前的遗留字段,为了兼容http1.0。一般用在客户端上,意思为告诉中间服务器,我不要缓存资源。
所有的中间服务器如果都能以 HTTP/1.1 为基准,那直接采用 Cache-Control: no-cache 指定缓存的处理方式是最为理想的。但要整体掌握全部中间服务器使用的 HTTP 协议版本却是不现实的。因此,发送的请求会同时含有下面两个首部字