http缓存

  1. 检查强缓存:
  • Expires(http1.0,时区计算可能导致出错,一个时间点)
  • Cache-Control(1.1,优先级更高,可设置max-age,public, private, no-store, no-cache)
  1. 检查协商缓存:
  • Last-modified: 服务器端资源的最后修改时间,响应头部会带上这个标识。第一次请求之后,浏览器记录这个时间,再次请求时,请求头部带上 If-Modified-Since 即为之前记录下的时间。服务器端收到带 If-Modified-Since 的请求后会去和资源的最后修改时间对比。若修改过就返回最新资源,状态码 200,若没有修改过则返回 304。
  • Etag/If-None-Match: 由服务器端上生成的一段 hash 字符串,第一次请求时响应头带上 ETag: abcd,之后的请求中带上 If-None-Match: abcd,服务器检查 ETag,返回 304 或 200。

last-modified 和 Etag 区别:

  • 某些服务器不能精确得到资源的最后修改时间,这样就无法通过最后修改时间判断资源是否更新。
  • Last-modified 只能精确到秒。
  • 一些资源的最后修改时间改变了,但是内容没改变,使用 Last-modified 看不出内容没有改变。
  • Etag 的精度比 Last-modified 高,属于强验证,要求资源字节级别的一致,优先级高。

建议缓存:css、js、图标、html、可下载内容

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 网络特有的延迟以及数据传输的成本,制约互联网快速获取Web资源。为此,HTTP协议引入缓存以空间换时间,使浏览器缓...
    大头8086阅读 8,232评论 2 12
  • 本文内容大多参考《图解HTTP》一书 一. 认识代理服务器 所以讲缓存为什么要先扯代理服务器?别急,让我们看一下一...
    流光号船长阅读 6,065评论 0 10
  • HTTP Headers 1. 通用首部字段:就是请求报文和响应报文都能用上的字段 2. 请求首部字段 3. 响应...
    莱斯塔特阅读 2,976评论 0 0
  • 1. 缓存的分类 缓存分为服务端缓存和客户端缓存 服务端缓存又分为代理服务器缓存和反向代理服务器缓存(也叫网关缓存...
    lemonCode阅读 2,744评论 0 0
  • 时间:2016-12-12 17:51:30作者: zhongxia 零、前言 这里主要写的是理论,具体实践的比较...
    izhongxia阅读 1,924评论 0 1