《http权威指南》阅读笔记(五)

web缓存作用:减少网络的数据传输,增快响应时间,减轻服务器压力

 

web缓存:客户端缓存 和 共享式缓存

客户端缓存一般通过浏览器来实现

共享式缓存一般通过缓存服务器来实现

 

控制缓存的http header信息

http1.1

Cache-Control:no-stroe|no-cache|maxage

对于http响应报文

no-stroe:告诉缓存服务器不要缓存内容

no-cache: 告诉缓存服务器对于缓存的内容都需要座有效检测

maxage:设置一个相对过期时间,单位秒 例如maxage=3600 一小时之后过期

对于http请求报文

no-store:强制缓存服务器请求web服务器返回内容,并且删除缓存

no-cache: 告诉缓存服务器,对缓存的内容做有效检测,并返回最新的内容

maxage: 貌似没有定义

 

响应报文头部:Last-Modified: 最后修改时间

请求报文头部:If-Modified-Since:时间,是否在给定的时间后有过修改 返回http/1.1 304 Not Modified,表示没有修改,否则返回实体信息

 

http1.0+

响应头部:Expires:绝对过期时间,考虑到客户端机器时间影响,不一定会有效果

Pragma  和 Cache-Control 代表含义一样,只不过这个是http1.0+里面定义的,优先使用http1.1协议

 

缓存的有效期判断:

1 根据最后修改时间判断

2 根据Etag判断,Etab也是http报文头部信息,可以把他当做版本号

 

浏览器强制刷新 和 F5刷新的区别

强制刷新:请求头部添加 Cache-Control: no-cache ,告诉浏览器不要使用本地缓存

F5刷新:浏览器重新请求,如果有缓存并且没有过期,就使用缓存内容

 

Html里面控制缓存的方式

<head><HTTP-EQUIV meta="Cache-Control: no-cache" /></head>

通过HTTP-EQUIV标签实现,部分web服务器会解析,但是会增加web服务器的压力,毕竟首先要解析html文件,不赞成使用