《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文件,不赞成使用