浏览器缓存原理总结
副标题[/!--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代码设置不启用强缓存
(编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- d3dx9_43.dll丢失在win7电脑中的解决方案
- 在Bash中使用[方括号] (一)
- 原版Ghost win7旗舰版镜像32位系统下载安装步骤
- 如何重装电脑系统win7系统示例教程
- windows-server-2008 – 小型企业中的Active Directory灾难
- 教你怎样在win10基础上安装win7教程
- windows-server-2008 – Windows远程桌面是否有任何防止暴力
- 微软发布Windows 10 RS5最新ISO镜像下载:Build 17738
- windows-server-2008 – 我在Windows Server 2008中可以拥有
- 优秀!Github上10个开源免费的后台控制面板你值得拥有!