Skip to content

Latest commit

 

History

History
30 lines (17 loc) · 1.44 KB

article10.md

File metadata and controls

30 lines (17 loc) · 1.44 KB

HTTP缓存相关头部

HTTP缓存是web应用优化的一个重要环节,了解HTTP缓存机制对于web应用的开发至关重要。

HTTP缓存机制主要分类两类,强制缓存和对比缓存。

强制缓存

强制缓存为在缓存数据未失效的情况下,可以直接使用缓存数据。相关头部:

  • Expires(1.0)响应头部,返回到期时间。
  • Cache-Control(1.1)响应头部,返回max-age,即相对缓存时间。

对比缓存

对比缓存为每次发送请求时将服务器上次返回的缓存标识符和所需资源一起发送给服务端,服务端根据标识符告诉客户端是否可以使用缓存。相关头部:

  • Last-Modified 响应头部,返回上一次修改时间。
  • If-Modified-Since 请求头部,发送给服务器上次返回的最后修改时间。

通过判断最后修改时间来实现是都可使用缓存策略。缺点是同一秒之内的修改会记录不到。

  • Etag 响应头部,返回上一次请求内容标签。
  • If-None-Match 请求头部,发送上次返回的内容标签。

基于内容的判断更为科学,解决了时间记录所带来的缺陷,缺点是计算基于内容的标签算法需要消耗时间。

总结

在请求资源过程中,首先会进行强制缓存的判断,在没有命中缓存的情况下,再进行对比缓存的判断。对比缓存的两种头部各有优缺点,在选择策略时要根据实际情况进行选择。