HTTP缓存

http缓存:存储与请求关联的响应,并将存储的响应复用与后续请求

http缓存的好处:

  1. 响应速度快
  2. 减轻服务器的压力

http缓存如何实现

  • 扩展:http的头部分为:
    • 请求头
    • 响应头
    • 通用头:即可以用在请求头,又可以用在响应头。比如Cache-Control
    • 实体头:实体是指http报文想要传输的实际数据。比如上传文件时上传的文件,加载静态资源时的资源。实体报头可能同时存在于 HTTP 请求和响应信息中,实体报头既非请求或响应报头。

http缓存分类

按存储范围:私有缓存、共享缓存

私有缓存

存储在特定的客户端,比如浏览器。通过Cache-Control:private

共享缓存

存储在客户端和服务器之间。通过Cache-Control:public

浏览器的强制缓存和协商缓存

  • 强缓存:

    • 发起http请求时,直接从浏览器读取缓存,请求不必到达服务器。
    • 如果缓存命中,http状态码为200 OK(from memory cache)和 200 OK(from disk cache)
  • 协商缓存:

    • 发起http请求时,要经过和服务器的协商,才可以使用浏览器的缓存
    • 如果缓存命中,http状态码为304
  • 如何判断浏览器的缓存是否直接可用?

    • 查看是否有通用头Cache-Control
      • 如果设置了Cache-Control:max-age=<seconds>,缓存的最大有效期
      • 如果设置了Cache-Control:no-cache,表示每次都要使用协商缓存
      • 如果设置了Cache-Control:no-store,表示不使用任何缓存
    • 如果没有Cache-Control,查看是否有响应头Expires,看当前事情是否超过Expires设置的时间
  • 如何判断协商缓存是否命中?

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

推荐阅读更多精彩内容