禁用缓存
在chrome 53中,如果选中了network
面板里面的Disable cache
,那么,浏览器发送的请求中的Cache-Control
会产生变化
st=>start: 是否禁用缓存
cond=>condition: Yes or No?
op1=>operation: Cache-Control:no-cache
op2=>operation: Cache-Control:max-age=0
st->cond
cond(yes)->op1
cond(no)->op2
使用no-cache的目的是为了防止从缓存中返回过期的资源
在<图解HTTP>这一本书中,提到过:
no-cache
: 强制向源服务器再次验证
max-age=[秒]
: 响应的最大Age值
其实,我觉得值得考究的是max-age=0
和no-cache
具体的差异在哪里?
后来面向stackoverflow编程后,我得到了如下总结:
max-age
用于指示多少秒后验证一次资源的有效性,等于0
表示立即向服务器验证资源的有效性,如果服务器返回的响应是304
,那么浏览器可以直接使用缓存中的数据,然后no-cache
表示我只要最新的资源,不会使用浏览器缓存中的资源,并且服务器不必验证资源的有效性.
View resource initiators and dependencies
这一章挺有意思的,讲的是你按住shift
键后把鼠标移动到网络面板中的一个资源上(先暂时把他叫做target
),别的资源有可能会出现绿色或则是红色的底,绿色底的资源表示它是target
的initiator
(感觉可以把它翻译为发起请求target
这个资源的资源,比如html中加载了一张图片,那么html可以当做initiator
,图片可以当做target
),红色底的资源表示是target
的依赖(比如html文件中加载了css
和js
文件,那么css
和js
文件就都是html的依赖)
用chrome开发者中心的文档来解释一下:
当查看dn/
这个资源的时候,出现了两个绿色底的资源,rs
开头的这个资源是initialtor
,同时,www.google.com
也是rs
这个资源的initialtor
.因为dn/
这个资源需要下载dn.js
所以dn.js
显示红色.
后续
当然,文档里面还有很多有意思的东西,这里就不一一列出来了,我觉得,有很多东西,都是遇到问题的时候,多想想,也就能记起之前看过的好的工具,多用熟练起来后,才能把它牢牢地记载脑子里.