zoukankan      html  css  js  c++  java
  • 浏览器缓存

    1.Cache-control: 

      用户每一次访问www.google.com,浏览器查看缓存文件夹,发现不存在缓存文件,于是发送http请求。
      server端返回http头中包含 cache-control=max-age=60。
      5秒钟后,用户刷新该页面,浏览器发现缓存文件夹中有该页面的缓存,也在存活期内,则直接把缓存文件作为响应。
      

    2.Last-Modified

      60秒钟后用户继续刷新该页面,此时max-age已经过期,但缓存文件夹中还有此文件,浏览器读取到该文件的Last-Modified,并将Last-Modified的值
      作为If-Modified-Since的值发送给server端,server端查看该文件的最后修改日期,如果If-Modified-Since比服务器上的最后修改日期要小,就明客户端
      的文件已经低一个版本了,于是返回http 200。反之则返回http 304(不返回包体)。(server端如果没有找到该文件,说明这是请求动态页面的请求,例如:.php .jsp .action)

    3.ETag

      server端在返回Last-Modified的同时,还返回另外一个包头信息ETag。
      在发送IF-Modified-Since的同时,还发送If-None-Match,它的值就是ETag的值。
      server端如果IF-Modified-Since和Etag两者都匹配则返回http 304。

    ps:

      IE6 在资源有gzip压缩同时有ETag头时,cache后再次发请求不会带If-None-Match头

      IE6 下如果出现重复的URL请求,会直接拿缓存中的数据,不会发送http请求

      Pragma、expires 这两个http1.0 头信息可以忽略不写,现在几乎100%都使用http1.1

      浏览器强制刷新的本质就是发送http请求时不包含If-None-Match、IF-Modified-Since,这样server端会重新返回包体。  

  • 相关阅读:
    [Memcached]操作
    [Linux-CentOS7]安装Telnet
    PAT Advanced 1093 Count PAT's (25分)
    PAT Advanced 1065 A+B and C (64bit) (20分)
    PAT Advanced 1009 Product of Polynomials (25分)
    PAT Advanced 1008 Elevator (20分)
    PAT Advanced 1006 Sign In and Sign Out (25分)
    PAT Advanced 1002 A+B for Polynomials (25分)
    半年分布式处理回顾&机器学习(一)——线性回归
    PAT Advanced 1147 Heaps (30分)
  • 原文地址:https://www.cnblogs.com/BigIdiot/p/3095381.html
Copyright © 2011-2022 走看看