html
浏览器缓存相关 -凯发ag旗舰厅登录网址下载
常用到的缓存有:浏览器缓存,dns缓存,服务器缓存。总结下前端优化中常用到的浏览器缓存。
expires和cache-control用于本地缓存,last-modified和etag用于协商缓存。
expires是http1.0定义的,是一个具体的日期时间,使用时,需要服务器和pc时钟同步,cache-control是http1.1定义的,是一个相对时间,相对时间就不必要求时钟同步了。cache-control的max-age是一个秒数,若与expires同时存在,则cache-control生效。若判断本地缓存没有过期,会直接从缓存读取,不发送新的请求。若缓存过期,重新请求。
last-modified和etag用于判断服务器文件是否有更新。last-modified是一个具体日期时间,etag是一个字符串。请求头中与之相对应的是if-modified-since和if-none-match。etag比last-modified更精细。首次请求没有对应信息,之后的请求,到服务器端会判断,若标识相同,说明文件没有更改,返回304,浏览器接收到304会从缓存中读取,缓存命中;若有更改,将返回新资源。
若用户使用f5刷新页面,无论expires和cache-control是否过期,都不会生效,但last-modified和etag会有效;使用ctrl f5刷新时,last-modified和etag也无效,会强制从服务器下载资源。
总体而言,在服务器配置正确的情况下,
通过有效期控制 expires / pragma / cache-control 优点:浏览器不需要访问server来验证资源状态 缺点:不够准确,指定的缓存时间段内浏览器默认不会再次请求资源,当产生紧急外网bug时发布的资源无法及时更新到浏览器端。
通过资源状态控制 last-modified if-modified-since / etag if-none-match 优点:缓存控制比较精确,随时发布随时生效。 缺点:即使资源已存在于浏览器本地缓存中,也需要请求一次服务器验证资源状态以验证缓存有效性
转载于:https://www.cnblogs.com/linda586586/p/4127103.html
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的浏览器缓存相关的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: