Http 缓存机制

1.expires 缓存

expires: Thu, 16 May 2019 03:05:59 GMT
  • 在 http 头中设置一个过期时间,在这个过期时间之前,浏览器的请求都不会发出,而是自动从缓存中读取文件,除非缓存被清空,或者强制刷新。缺陷在于,服务器时间和用户端时间可能存在不一致,所以 HTTP/1.1 加入了 cache-control 头来改进这个问题。
  1. cache-contorl 缓存
cache-control: max-age=31536000
  • 设置过期的时间长度(秒),在这个时间范围内,浏览器请求都会直接读缓存。
  • 当 expires 和 cache-control 都存在时,cache-control 的优先级更高。
  1. last-modified / if-modified-since
响应头
  last-modified: Wed, 16 May 2018 02:57:16 GMT
请求头
  if-modified-since: Wed, 16 May 2018 05:55:38 GMT
  • 服务器返回资源信息时,会在响应头中添加一字段( last-modified),并在下次请求会把值加入到请求头 if-modified-since 中,服务器会进行对比此字段值,如果没有变化则返回304,直接获取缓存中的数据。
  1. etag / if-none-match
响应头
  etag:"D5FC8B85A045FF720547BC36FC872550"
请求头
  if-none-match: "D5FC8B85A045FF720547BC36FC872550"
  • 原理类似,服务器端返回资源时,如果头部带上了 etag,那么资源下次请求时就会把值加入到请求头 if-none-match 中,服务器可以对比这个值,确定资源是否发生变化,如果没有发生变化,则返回 304。
上面四种缓存的优先级:cache-control > expires > etag > last-modified
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 非暴力接触--158天 1、猜,抛出的话题和你有关,赞同不赞同,或有什么意见需要你回应,沉默无语无表情是几个意思?...
    Alina_qi阅读 237评论 2 5
  • 根据 Google Play 目标 API 等级(targetSdkVersion)重要变更要求 从 2018 年...
    Jessewo阅读 3,971评论 0 1
  • 6trrff Ktujkjjhhjjjhggjvbjjj
    Hainian阅读 316评论 0 0
  • 我们身处的世界,本质上是个大市场,在那里我们每个人都在零售、批发、推销自己的时间,也有人在购买他人的时间……...
    陌白Carl阅读 477评论 0 0

友情链接更多精彩内容