浏览器缓存原理总结
副标题[/!--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代码设置不启用强缓存
(编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008 – Windows 7 x64 Ultimate上的IIS 7.
- 灵活运用Vista协助系统
- windows-server-2008-r2 – windws server 2008 udp组播性能
- Win10 10049版登录时蓝屏处理办法
- windows – 如何使用远程桌面发送ctrl alt del?
- TLP:一个可以延长Linux笔记本电池寿命的高级电源管理工具
- Windows 365 商业版现已允许 Windows 11 云电脑等
- Linux交互执行命令--expect详解
- 树莓派自建NAS云盘之——数据自动备份
- Windows telnet客户端可以编写脚本吗?