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

浏览器缓存是如何控制的

作者: 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只能精确到秒)

    相关文章

      网友评论

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

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