HTTP 缓存
21 May ’15
web缓存是可以自动保存常见文档副本的HTTP设备。当web请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器提取该文档。使用缓存的优点有:
1、减少了冗余的数据传输:节省网费;
2、缓解了网络瓶颈问题:不需要更多带宽就可更快加载页面;
3、降低了对原始服务器的要求:可以更快地响应,避免过载;
4、降低了距离时延。
-
定义缓存策略:控制谁在什么条件下可能缓存响应,以及可以缓存多久。
- no-cache:必须先与服务器确认返回的响应是否被更改,然后才能使用该响应来满足后续对同一个网址的请求。因此,如果存在合适的验证令牌 (ETag),no-cache 会发起往返通信来验证缓存的响应,如果资源未被更改,可以避免下载
-
no-store:禁止浏览器和所有中继缓存存储返回的任何版本的响应
-
public:即使有关联的 HTTP 认证,甚至响应状态码无法正常缓存,响应也可以被缓存
-
private:不允许任何中继缓存对其进行缓存,但浏览器可以缓存
- max-age:从当前请求开始,允许获取的响应被重用的最长时间(单位为秒)
理想情况下,目标应该是在客户端上缓存尽可能多的响应、缓存尽可能长的时间,并且为每个响应提供验证令牌,以便进行高效的重新验证。