课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存是我们在学习软件开发的时候会接触到的一个功能应用,而今天我们就通过案例分析来了解一下,http缓存机制都有哪些注意事项。
HTTP缓存机制分为强制缓存和协商缓存两类。
强制缓存的意思就是不要问了(不发起请求),直接用缓存吧。
强制缓存常见技术有Expires和Cache-Control。
Expires的值是一个时间,表示这个时间前缓存都有效,都不需要发起请求。
Cache-Control有很多属性值,常用属性max-age设置了缓存有效的时间长度,单位为秒,这个时间没到,都不用发起请求。
immutable也是Cache-Control的一个属性,表示这个资源这辈子都不用再请求了,但是他兼容性不好,Cache-Control其他属性可以参考MDN的文档。
Cache-Control的max-age优先级比Expires高。
协商缓存常见技术有ETag和Last-Modified。
ETag其实就是给资源算一个hash值或者版本号,对应的常用requestheader为If-None-Match。
Last-Modified其实就是加上资源修改的时间,对应的常用requestheader为If-Modified-Since,精度为秒。
ETag每次修改都会改变,而Last-Modified的精度只到秒,所以ETag更准确,优先级更高,但是需要计算,所以服务端开销更大。
强制缓存和协商缓存都存在的情况下,先判断强制缓存是否生效,如果生效,不用发起请求,直接用缓存。如果强制缓存不生效再发起请求判断协商缓存。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。