HTTP详解--通用首部字段解析(九)
来源:互联网 发布:电子印章生成器软件 编辑:程序博客网 时间:2024/05/20 04:27
- 通用首部字段
- 是指请求报文和响应报文双方都会使用的首部。
- Cache-Control
- 作用:用来操作缓存的工作机制;
- 指令的参数是可选的,多个指令之间通过","分隔。首部字段Cache-Control的指令可用于请求及响应时;
- 指令一览
- 缓存请求指令
指令
参数
说明
no-cache
无
强制向源服务器再次验证
no-store
无
不缓存请求或响应的任何内容
max-age=[秒]
必需
响应的最大Age值
max-stale(=[秒])
可省略
接收已过期的响应
min-fresh=[秒]
必需
期望在指定时间内的响应仍有效
no-reansform
无
代理不可更改媒体类型
only-if-cached
无
从缓存获取资源
cache-extension
-
新指令标记(token)
- 缓存响应指令
指令
参数
说明
public
无
可向任意方向提供响应的缓存
private
可省略
仅向特定用户返回响应
no-cache
可省略
缓存前必须先确认其有效性
no-store
无
不缓存请求或响应的任何内容
no-transform
无
代理不可更改媒体类型
must-revalidate
无
可缓存但必须再向源服务器进行确认
proxy-revalidate
无
要求中间缓存服务器对缓存的响应有效性再进行确认
max-age=[秒]
必需
响应的最大Age值
s-maxage=[秒]
必需
公共缓存服务器响应的最大Age值
cache-extension
-
新指令标记(token)
- public指令
Cache-Control:public
该指令明确表明其他用户也可利用缓存
- private指令
Cache-Control:private
该指令使响应只以特定的用户作为对象,这与public相反
缓存服务器会对该特定用户提供资源缓存的服务,对于其他用户发送过来的请求,代理服务器则不会返回缓存
- no-cache指令
Cache-Control:no-cache
使用该指令的目的是为了防止缓存种返回过期的资源;
如果是客户端发送的请求包含no-che指令,那么客户端不会接收缓存过的响应。缓存服务器必须把客户端请求转发给源服务器;
如果是服务器返回的响应种包含no-cache指令,那么缓存服务器不能对资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资源有效性进行确认,且禁止其对响应资源进行缓存操作;
Cache-Control:no-cache=Location
只能在响应中指定该参数。客户端在接收到此参数对应的响应报文后,就不能使用缓存;
- no-store指令
Cache-Control:no-store
该指令暗示请求(和对应的响应)或响应中包含机密信息。该指令规定缓存不能在本地存储请求或响应的任一部分
- s-maxage指令
Cache-Control:s-maxage=604800(单位:秒)
只适用于供多位用户使用的公共缓存服务器。对于同一用户重复返回响应的服务器,该命令无效
使用该命令后,会忽略Expires首部字段及max-age指令的处理
- max-age指令
Cache-Control:max-age=604800(单位:秒)
客户端:在请求中包含该指令,会判定缓存资源的缓存时间,如果比该属性的值小,客户端就会接收缓存资源;当数值为0,缓存服务器需要将请求转发给源服务器;
服务器:响应中包含该指令的话,缓存服务器将不对资源的有效性再作确认,而属性值则代表资源保存为缓存的最长时间;
- min-fresh指令
Cache-Control:min-fresh=60(单位:秒)
该指令要求缓存服务器返回至少还未过指定时间的缓存资源
- Connection
- 作用如下:
- 控制不再转发给代理的首部字段;
- 管理持久连接;
- 控制不再转发给代理的首部字段
- Connection:不再转发的首部字段名;
- 在请求或响应中使用该首部字段,可控制不再转发给代理的首部字段(即Hop-by-hop 首部)
- 管理持久连接
- Connection:close
- HTTP/1.1默认持久连接。
- 指定Connection的值为Close,表示服务器端想断开连接;
- HTTP/1.1之前如何保持持久连接?
- Connection:Keep-Alive
- HTTP/1.1之前的版本默认连接都是非持久连接的。通过Keep-Alive可让旧版本开启持久连接;
- Date
- 作用:表明创建HTTP报文的日期和时间
- HTTP/1.1的日期格式
- 旧版本HTTP的日期格式
- 其他格式
- Trailer
- 作用:说明在报文主体后记录了哪些首部字段。该首部字段可应用在HTTP/1.1版本分块传输编码时;
- Transfer-Encoding
- 作用:规定了传输报文主体时采用的编码方式;
- 示例:
- Upgrade
- 作用:用于检测HTTP协议及其他协议是否可使用更高的版本进行通信,其参数值可以用来指定一个完全不同的通信协议;
- Via
- 作用:用于追踪客户端与服务器之间的请求和响应报文的传输路径;
- 报文经过代理或者网关时,会先在首部字段Via中附加该服务器的信息,然后再进行转发;
- 该首部字段还可避免请求回环的发生。
- Warning
- 作用:告知用户一些与缓存有关的警告
- Warning首部的格式如下:最后的日期部分可省略
- HTTP详解--通用首部字段解析(九)
- 4 HTTP 首部(一):通用首部字段
- HTTP详解--请求首部字段(十)
- HTTP详解--响应首部字段(11)
- Http详解--实体首部字段(12)
- 略说HTTP协议(三:首部字段简介及通用首部字段)
- HTTP详解--为Cookie服务的首部字段(13)
- Http协议基础之HTTP通用首部字段
- 5 HTTP 首部(二):请求首部字段
- 6 HTTP 首部(三):响应首部字段
- 7 HTTP 首部(四):其它首部字段
- Http首部字段
- HTTP首部字段
- HTTP详解--HTTP首部(八)
- http中url的组成和首部字段详解
- HTTP学习笔记:HTTP首部字段(1)
- HTTP首部行可选字段
- HTTP全部报文首部字段
- HTML+CSS编写静态网站-43 如何修复bug
- 【Leetcode】【python】Maximum Depth of Binary Tree
- Oracle12C--重载包中的子程序(五十)
- Oracle12C--包的纯度级别(五十一)
- HTTP详解--HTTP首部(八)
- HTTP详解--通用首部字段解析(九)
- 模拟斗地主,洗牌、发牌、看牌。牌没有顺序. 简单操作.
- 安卓端车牌识别appSDK
- C++中map的使用和基本操作
- Ajax技术--load()显示当前时间
- Pow(x, n)问题及解法
- HDU1235 统计同成绩学生人数【序列处理】
- iis10配置php教程
- 电商商城服务端开发--高复用的服务端响应代码设计