浏览器的缓存机制
浏览器在本地磁盘中会对用户最近请求过的文档进行存储,当用户再次访问同一页面时,浏览器可以直接从本地磁盘中加载文档。
浏览器缓存的优点:
1、减少冗余数据的请求;
2、减少服务器的负担;
3、加快客户端加载网页的速度。
浏览器缓存分类
浏览器的缓存主要分为两类:强缓存和协商缓存。
浏览器在第一次请求后,发生再次请求时:
1、直接从本地缓存中先获取header,通过header信息中expires和cache-control判断是否命中强缓存,如果命中,不会向服务器发送请求,则直接从本地获取资源;
2、如果没有命中,浏览器会携带第一次请求获得header信息发送请求到服务器,根据header中的信息判断是否命中协商缓存,如果命中,则服务器会返回新的header信息,但不会返回资源内容,会告知浏览器从本地资源获取,否则返回最新的资源。
强缓存
强缓存利用http头的Expires和Cache-Control两个字段来控制,用来表示缓存资源的时间。
强缓存,普通刷新会忽略他,不会清除他,通过强制刷新才可以清除。
浏览器强制刷新,请求会带上Cache-Control:no-cache和pragma:no-cache。
服务器端配置Expires和Cache-Control,建议Expires结合Cache-Control一起使用,Cache-Control的优先级高于Expires。
协商缓存
协商缓存就是由服务器来确定缓存资源是否可用。客户端与服务器需要通过某种标识来进行通信,让服务器来判断请求资源是否可以缓存访问。
涉及两组header字段:Etag和If-None-Match、Last-Modified和If-Modified-Since