缓存

2017-10-30  本文已影响4人  simonbaker

浏览器发起一个请求,会先看看该请求是否存在缓存,是否足够新鲜,服务器再验证是否通过。
这有四条路,三个缓存知识点:200/from cache/304 Not Modified
具体如下图所示:


缓存.png

问题:

  1. 怎么判断缓存足够新鲜?
  2. 怎么与服务器进行再验证?

答案:

  1. 通过响应头的Cache-Control和Expires来校验缓存是否足够新鲜。
  2. 通过Last-modified和Etag来与服务器进行再验证。

答案1详细解答:

  1. Expires是绝对日期,是HTTP/1.0+的首部;Cache-Control是相对时间,是HTTP/1.1的首部
  2. 通过Expires或Cache-Control的响应首部,原始服务器对每个文档加了"过期日期"
  3. 两者一起使用,Cache-Control优先级更高
  4. Cache-Control相对最后修改时间

答案2详细解答:

  1. 过期后,请求到了服务器,服务器通过查看该文件的Last-modified或Etag来校验该文件是否有修改过
  2. Etag是服务器生成并返回的随机令牌,通常是文件内容的哈希值或某个其他指纹

可参考:
HTTP 缓存
浅谈Web缓存

上一篇 下一篇

猜你喜欢

热点阅读