浏览器缓存原理总结
副标题[/!--empirenews.page--]
一、浏览器缓存基本认识 分为强缓存和协商缓存
二、强缓存的原理 2.1 介绍 当浏览器对某个资源的请求命中了强缓存时,返回的http状态为200,在chrome的开发者工具的network里面size会显示为from cache,比如京东的首页里就有很多静态资源配置了强缓存,用chrome打开几次,再用f12查看network,可以看到有不少请求就是从缓存中加载的 强缓存是利用Expires或者Cache-Control这两个http response header实现的,它们都用来表示资源在客户端缓存的有效期。 Expires是http1.0提出的一个表示资源过期时间的header,它描述的是一个绝对时间,由服务器返回,用GMT格式的字符串表示,如:Expires:Thu, 31 Dec 2037 23:55:55 GMT 2.2 Expires缓存原理
Expires是较老的强缓存管理header,由于它是服务器返回的一个绝对时间,在服务器时间与客户端时间相差较大时,缓存管理容易出现问题,比如随意修改下客户端时间,就能影响缓存命中的结果。所以在http1.1的时候,提出了一个新的header,就是Cache-Control,这是一个相对时间,在配置缓存的时候,以秒为单位,用数值表示,如:Cache-Control:max-age=315360000 2.3 Cache-Control缓存原理 浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone的header加上Cache-Control,如:
Cache-Control描述的是一个相对时间,在进行缓存命中的时候,都是利用客户端时间进行判断,所以相比较Expires,Cache-Control的缓存管理更有效,安全一些。 这两个header可以只启用一个,也可以同时启用,当response header中,Expires和Cache-Control同时存在时,Cache-Control优先级高于Expires: 三、强缓存的管理 前面介绍的是强缓存的原理,在实际应用中我们会碰到需要强缓存的场景和不需要强缓存的场景,通常有2种方式来设置是否启用强缓存
比如在javaweb里面,我们可以使用类似下面的代码设置强缓存
还可以通过类似下面的java代码设置不启用强缓存
(编辑:辽源站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种
- Win10更新KB3087040出现0x80004005错误处理方法
- Win10怎么打开html文件 Win10打开html文件的方法
- 停止Windows服务不会终止进程(服务使用ant)
- 微软发布新更新:修整Windows11上AMD性能问题
- 如何截取屏幕截图并将其保存为Windows上的JPEG?
- KB6006746公布:修复Windows11上AMD性能问题
- Windows 11 Android 子系统上手初体会
- 如何在Windows 10中修复intelppm.sys BSOD错误
- win8.1系统和阿里旺旺软件发生不兼容怎么办