美文网首页
浏览器缓存是如何控制的

浏览器缓存是如何控制的

作者: IT男的成长记录 | 来源:发表于2017-05-01 16:27 被阅读0次
相应头信息

浏览器在请求已经访问过的URL时,会判断是否使用缓存,判断是否是由缓存的主要依据是缓存是否在有效期内,如果在有效期内,则会直接使用缓存(如上图中的情况,注意status code)这一部分主要通过response header中的两个字段来判断:

  • Expires:
    表示有效期,是一个GMT时间,以客户端为基准,与服务器时间可能存在一定时间差
  • Cache-Control中的max-age值:
    表示最大有效时间,单位是s,优先级比expires高,为了解决expires时间差的问题而出现的

当超过缓存期时,浏览器不会直接请求资源,而是判断缓存是否有更新,能否继续使用,判断方法有两种:

  • Last-Modified和 if-Modified-Since:当浏览器第一次请求某个资源时,服务器的响应中有一个Last-Modified字段,表示最近一个修改缓存的时间,当缓存过期后,浏览器就会把这个时间放在请求的If-Modified-Since字段中并发送给服务器,由服务器来判断缓存是否有更新
  • Etag和If-Node-Match:当浏览器第一次请求某个资源时,服务器的响应中有一个ETag字段,是用于表示文件的字符串,一旦文件更新,该字段就会发生变化;当缓存过期后,浏览器会把该字段的内容放在请求的If-None-Match字段中,并发送给服务器,由服务器来判断缓存是否有更新。

注意:Etag比Last-Modified的更高(因为Etag更加准确,而Last-Modified只能精确到秒)

相关文章

  • 一次弄懂HTTP缓存相关的11个问题

    聊一聊浏览器的缓存机制 HTTP是如何控制缓存的 Expires字段是什么意思?有什么作用 Expires和Cac...

  • 关于浏览器缓存

    首先浏览器缓存分为内存缓存和文件缓存。内存缓存是浏览器自己控制的,不受Cache-Control影响,跟计算机内存...

  • 浏览器缓存是如何控制的

    浏览器在请求已经访问过的URL时,会判断是否使用缓存,判断是否是由缓存的主要依据是缓存是否在有效期内,如果在有效期...

  • 网站静态化相关总结

    1、介绍 (1)缓存介绍 1)浏览器缓存: 是保存在浏览器端的缓存,这个缓存我们没有办法控制。在360等卫士的清理...

  • Http

    参考文章:阮一峰讲RESTful API简述浏览器缓存是如何控制的 Http Http协议(HyperText T...

  • nginx 缓存(11)

    介绍nginx是如何设置缓存之前,我们还是先聊聊web浏览器的缓存机制。 1.浏览器缓存 浏览器的缓存机制也就是我...

  • 浏览器缓存机制

    前言 对于浏览器缓存,‘一般人’只知道"浏览器有缓存",但是不清楚浏览器的缓存机制。那么浏览器缓存到底是如何工作的...

  • 浏览器 http 缓存机制总结

    浏览器 http 缓存机制总结 http 报文头信息控制缓存介绍 Expires ​ 指的是缓存过期的时间,超...

  • 如何理解浏览器缓存,优点是什么?

    如何理解浏览器缓存,优点是什么? 浏览器缓存:包括页面html缓存和图片, js,css等资源的缓存。如下图,浏览...

  • http消息头中的缓存控制以及volley和retrofit中的

    缓存控制 浏览器 HTTP 协议缓存机制详解 确实很详细缓存Cache详解 先前对http缓存的主要疑惑在于: 几...

网友评论

      本文标题:浏览器缓存是如何控制的

      本文链接:https://www.haomeiwen.com/subject/zczftxtx.html