请求缓存

浏览器与服务器之间的缓存策略

http-header可以设置缓存信息

  • Cache-control取值

    • max-age
         从请求资源到这段时间之内这个是有效的,再次发送请求的时候可以直接从缓存里面读取,(高于expires)
    • s-maxage
        对于public(公用都能够读取)的缓存设备生效 =>例如cdn缓存设备中拿导致返回的是304而不是200
    • no-cache
        如果 no-cache 指令没有规定 field-name,那么一个缓存不能使用响应以满足接下来的、没有与源服务器重新验证的请求。这可以让源服务器防止缓存,甚至是已被配置的缓存,返回给客户端陈旧的响应
    • no-store
        没有任何的缓存策略
    • public
        指示响应可以被任何缓存所缓存,即使通常它只是非可缓存或可缓存到一个非共享缓存内
    • private
        指示响应信息的全部或部分用于单个用户,而不能用一个共享缓存来缓存
  • expires
      缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点. 并且在这个期间浏览器可以直接从浏览器缓存取数据,而无需再次请求

Last-Modified

上次修改时间

  • 上次修改时间
  • 配合If-Modified-Since或者If-Unmodified-Since使用
  • 对比上次修改时间验证资源是否需要更新

缺点:

  1. 某些服务端不能获取精确的修改时间
  2. 文件修改时间改了,但文件内容没有变

ETag

数据签名

  • 典型做法:对资源内容进行hash计算
  • 配合If-Match或者Id-Non-Match使用
  • 对比资源的签名判断是否使用缓存

  转载请注明: 迷一样的自信 请求缓存

 上一篇
浏览器的存储 浏览器的存储
浏览器的存储cookie生成方式(cookie) http response header中的set-cookie js中可以通过document.cookie可以读写cookie 作用(cookie) 用于浏览器端与服务器端的交互(主要
2018-05-13
下一篇 
抽象相等比较算法 抽象相等比较算法
抽象相等比较算法  比较运算x==y, 其中x和 y是值,产生true或者false 若Type(x)与Type(y)相同, 则若x为null且y为undefined, 返回true 若Type(x)为Undefined, 返回true
2018-05-05
  目录