17 - 03 - 17 图解HTTP(21)
2017-01-11 16:47
323 查看
表示是否能缓存的指令
# public 指令
ex : Cache-Control: public
当指定使用 public指令时,则明确表明其他用户也可利用缓存。
# private 指令
ex : Cache-Control: private
当指定 private指令后,响应只以特定的用户作为对象,这与 public 指令的行为相反。缓存服务器会对该特定用户提供资源缓存的服务,对于其他用户发送过来的请求,代理服务器则不会返回缓存。
# no-cache指令
ex : Cache-Control: no-cache
使用no-cache指令的目的是为了防止从缓存中返回过期的资源。
客户端发送的请求中如果包含 no-cache指令,则表示客户端将不会接收缓存过的响应。于是,“中间”的缓存服务器必须把客户端请求转发给源服务器。如果服务器返回的响应中包含 no-cache 指令,那么缓存服务器不能对资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资源有效性进行确认,且禁止其对响应资源进行缓存操作。
下图分别从客户端
和 服务器的角度来阐述 no-cache 。
ex : Cache-Control: no-cache=Location
由服务器返回的响应中,若报文首部字段 Cache-Control 中对 no-cache 字段名具体指定参数值,那么客户端在接收到这个被指定参数值的首部字段对应的响应报文后,就不能使用缓存。换言之,无参数值的首部字段可以使用缓存。只能在响应指令中指定该参数。
# public 指令
ex : Cache-Control: public
当指定使用 public指令时,则明确表明其他用户也可利用缓存。
# private 指令
ex : Cache-Control: private
当指定 private指令后,响应只以特定的用户作为对象,这与 public 指令的行为相反。缓存服务器会对该特定用户提供资源缓存的服务,对于其他用户发送过来的请求,代理服务器则不会返回缓存。
# no-cache指令
ex : Cache-Control: no-cache
使用no-cache指令的目的是为了防止从缓存中返回过期的资源。
客户端发送的请求中如果包含 no-cache指令,则表示客户端将不会接收缓存过的响应。于是,“中间”的缓存服务器必须把客户端请求转发给源服务器。如果服务器返回的响应中包含 no-cache 指令,那么缓存服务器不能对资源进行缓存。源服务器以后也将不再对缓存服务器请求中提出的资源有效性进行确认,且禁止其对响应资源进行缓存操作。
下图分别从客户端
和 服务器的角度来阐述 no-cache 。
ex : Cache-Control: no-cache=Location
由服务器返回的响应中,若报文首部字段 Cache-Control 中对 no-cache 字段名具体指定参数值,那么客户端在接收到这个被指定参数值的首部字段对应的响应报文后,就不能使用缓存。换言之,无参数值的首部字段可以使用缓存。只能在响应指令中指定该参数。
相关文章推荐
- 17 - 03 - 11 图解HTTP(15)
- 17 - 03 - 01 图解HTTP(05)
- 17 - 03 - 05 图解HTTP(09)
- 17 - 03 - 26 图解HTTP(30)
- 17 - 03 - 31 图解HTTP(35)
- 17 - 03 - 12 图解HTTP(16)
- 17 - 03 - 29 图解HTTP(33)
- 17 - 03 - 14 图解HTTP(18)
- 17 - 03 - 27 图解HTTP(31)
- 17 - 03 - 15 图解HTTP(19)
- 17 - 03 - 18 图解HTTP(22)
- 17 - 03 - 28 图解HTTP(32)
- 17 - 03 - 06 图解HTTP(10)
- 17 - 03 - 19 图解HTTP(23)
- 17 - 03 - 16 图解HTTP(20)
- 17 - 04 - 03 图解HTTP(38)
- 17 - 03 - 07 图解HTTP(11)
- 17 - 03 - 04 图解HTTP(08)
- 17 - 03 - 20 图解HTTP(24)
- 17 - 03 - 22 图解HTTP(26)