图解http协议(三)

第6章  HTTP首部


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 协议版本却是不现实的。因此,发送的请求会同时含有下面两个首部字段。

Cache-Control: no-cache    Pragma: no-cache

6.3.5 Trailer


这个字段说明,在报文主体后有哪些重要字段,以免服务器忘记查看,一般用来分块传输。


6.3.6 Transfer-Encoding


6.3.7 Upgrade

客户端利用此字段询问服务端,能让我使用更高版本或者其他协议通信吗?


6.3.8 via

资源在各个代理服务器,或者中转服务器之间转发时,都会在报文头部加上此字段,以便用来追踪资源的踪迹。


6.3.9 warning

6.4 请求首部字段

6.4.1 accept


q表示权重,返回数据格式的优先级。

数据格式包括:文本、图片文件、视频文件、应用程序使用的二进制文件

6.4.2 accept-charset

通知服务器,可以接收的资源的字符集

6.4.3 accept-encoding

用户代理告诉服务器,是否可以把压缩过后的资源吐给他。

6.4.4 accept-language

告诉服务器,它想要的资源的语言

6.4.5 authorization


猜你喜欢

转载自blog.csdn.net/cotexarm7/article/details/80838694