"简单介绍下http缓存?"

简单介绍下http缓存?

HTTP协议的缓存是通过6个报文头完成的,通过两层协商使web资源能够不那么频繁地在服务器与客户端之间传递,从而节约了流量,提高浏览速度。

http-cache.webp

以从客户端到服务器的顺序,第一层协商为Cache-Control与Expires;第二层协商为Last-Modified与Etag。

相关报文头:

1、Cache-Control
缓存控制字段,也就是用于给资源生命期,是http/1.1引入的属性
取值如下:

  • no-store 不缓存该资源。
  • no-cache 缓存该资源,可以等价与max-age=0。
  • max-age=x 请求缓存后的x秒不再发起请求。
  • s-maxage=x 代理服务器请求源站缓存后的x秒不再发起请求,只对CDN缓存有效。
  • public 客户端和代理服务器(CDN)都可缓存。
  • private 只有客户端可以缓存。

2、Expires
响应报文头,代表资源过期时间,由服务器返回提供,是http1.0的属性,在与Cache-Control共存的情况下,优先级要低。

3、Last-Modified
响应报文头,资源最新修改时间,由服务器告诉浏览器。

4、If-Modified-Since
请求报文头,与Last-Modified相对应,浏览器把服务器最后一次给的Last-Modified返回,服务器将以此进行对比,判断资源是否需要更新。

5、Etag
响应报文头,资源内容唯一标识,由服务器告诉浏览器。

6、If-None-Match
请求报文头,与Etag相对应,浏览器把服务器最后一次给的Etag返回,服务器将以此进行对比,判断资源是否需要更新。

PS:写作不易,如要转裁,请标明转载出处。

微信小程序:前端开发宝典

猜你想看
HTTP与HTTPS的区别?
HTTPS一般使用的加密与HASH算法有哪些?
简单介绍请求行、请求头和请求体?
登录
注册
回顶部