缓存:浏览器将用户请求过的静态资源存储在本地磁盘中,再次访问时可以直接在本地读取加载而不需要再次向服务器端发送请求。
弊端:服务器进行了资源更新,本地没有进行资源更新的话,页面展示的内容会依然是旧的,所以需要根据实际情况,合理安排缓存策略。
1.强缓存:通过http的响应头中的Cache-Control和Expire两个字段控制,Expire基本不用了,Cache-Control的存在几个属性:
private:仅浏览器可以缓存
public:浏览器和代理服务器都可以缓存
max-age=xxx:过期时间
no-cache:不进行强缓存
no-store:不强缓存,也不协商缓存
2.协商缓存:
它的触发条件有两点,其一是Cache-Control 的值为 no-cache,其二是max-age 过期了。协商缓存中还有两个重要的规则:
Etag/If-None-Match:每个文件有一个,改动文件了就变了
Last-Modified/If-Modified-Since:文件的修改时间
第一次请求
1.第一次发送请求时,本地无缓存
2.直接缓存