所以你应该是知道本章的内容是非常的多的,不急,一步一个脚印,慢慢来。
首先我们来讲一下通用字段
cache-control:这个是对缓存控制的属性,有下面这些属性值
public :顾名思义,就是所有用户都能利用缓存
private:只给特定的用户提供缓存
no-cache:不是字面上的不缓存的意思,是要想服务器检验一下有效性再发过来
no-store:这个才是真的不能缓存
max-age: 没过期的就可以发过去,响应的最大age
s-maxage: 公共缓存服务器响应的最大age
max-fresh :要求服务器返回在规定时间内还没过期的缓存
max-stale:过期多久的缓存可接收,无参数则过期的都可以
only-if-cache:有缓存的话返回给我,没有的话就算了,省点流量
must-revalidate:可缓存但是必须先向服务器确认
下面是和no-cache 的区别
no-cache: 告诉浏览器、缓存服务器,不管本地副本是否过期,使用资源副本前,一定要到源服务器进行副本有效性校验。
must-revalidate:告诉浏览器、缓存服务器,本地副本过期前,可以使用本地副本;本地副本一旦过期,必须去源服务器进行有效性校验。
connection :如果是首部属性则为删除某个属性再转发的意思
然后默认为持久连接keep-alive,如果要关闭连接则属性值为close
Date 声明日期
pragma:为了向后兼容;等同于cache-control
Trailer 事先说明报文主体后面的内容
Transfer-Encoding 规定传输报文主体的编码方式
upgrade 来检测是否支持更高版本的协议
via 就行前面说的,每经过一个代理或者网关就会加上该服务器端的信息
warning 警告码 该首部通常会告知用户一些与缓存相关的问题的警告
接下来就是请求的首部字段了
Accept
指定客户端接受的媒体类型和优先级,比如接收text/html,就是接收HTML格式的文本,q=n(0-1)来表示接收的优先级,默认权重为1.0;
Accept-Charset:接收的字符集,直接赋值utf-8即可,也可以增加权重
Accept-Encodeing:接收的编码形式
Accept-language:接收的语言
Authorization:认证信息
Except: 告知服务器,希望能够出现某种特定行为
Host:用来告知服务器资源所处的的主机名和端口号
if-match:只有其字段值和服务器的资源的ETag的值一样的时候,服务器才会返回资源
If-none-match: 就是匹配不成功怎么样咯
If-Modifed-Since:就是和其输入的时间相比,如果在那个时间之后有修改过,就返回,没有的话就不返回了,是为了确认本地缓存的有效性
If-Unmodified-Since:告诉服务器如果没有修改才处理请求,有的话就算了
If-range:和If-match一样的意思,配合range使用,如果匹配就返回range,如果不匹配就返回全部的内容(if-match也可以,但是要match成功之后才发送range过去,而if-range是和range一起发过去的)
Max-Forward:就是向前走几步(使用trace方法时用到)用来检测在哪个代理服务器出现了问题
Proxy-Authorization: 对代理服务器的认证
Referer:告诉服务器是谁发起的请求
TE:告知服务器接收的编码形式,和accept-Encoding很像,但是用于传输编码
User-Agent:把浏览器和用户代理的详细信息告诉服务器
再接下来我们讲响应首部
Accept-ranges:bytes 或者 none 用来对应请求首部的range是否可以被处理
age: 告诉客户端响应已经创建多久了,单位为秒
ETag:当ETag更新的时候将把新的传给服务器
Location: 就是返会3XX需要重定向时候的要重定向的地址
Proxy-Authenticate:把代理所需要的认证信息发送给客户端
Retry-After: 多久后再来访问
server: 把服务器的信息告诉客户端
Vary: 源服务器告诉代理服务器 缓存的使用方法,比如Accept-language,那么相同的语言的请求就返回缓存
WWW-Authenticate:告诉客户端它所请求的URI的认证方案
最后是我们的实体首部字段
Allow: 告诉客户端,服务端所支持的请求方法
Content-Encoding: 声明编码方式
Content-Language: 声明使用的自然语言
Content-Length: 声明资源的大小
Content-Location: 给出报文主体部分对应的URI
Content-MD5: 由MD5来确认内容是否被更改过
Content-range: 返回对应范围的资源
Content- Type: 声明实体主题的媒体类型
Expires: 声明资源的失效日期
Last-Modified: 最后一次修改的日期
还有为cookie服务的首部字
set-cookie
Cookie:就是从服务器那里收到的set-cookie的值