在地址栏回车 浏览器做了哪些动作

三种行为  地址栏回车  F5  ctrl+F5

一、地址栏回车,

观察Chrome下的行为,由于该页面已经访问过,而且设置了cache-control,所有资源文件在network一栏都是200 from cache,注意这个200不是服务器返回的。

对于本页面则会得到一个304,说明浏览器会对地址栏的地址无论如何发送一个请求,并在header里带上 if-modified-since。

二、按下F5,

该行为会触发浏览器对所有资源重新请求,并在header里带上 if-modified-since,因为资源没有变化,得到的响应式304。

三、Ctrl+F5, 

Ctrl+F5要的是彻底的从Server拿一份新的资源过来,所以不光要发送HTTP request给Server,而且这个请求里面连If-Modified-Since/If-None-Match都没有,这样就逼着Server不能返回304,而是把整个资源原原本本地返回一份,这样,Ctrl+F5引发的传输时间变长了,自然网页Refresh的也慢一些。

实际上,为了保证拿到的是从Server上最新的,Ctrl+F5不只是去掉了If-Modified-Since/If-None-Match,还需要添加一些HTTP Headers。按照HTTP/1.1协议,Cache不光只是存在Browser终端,从Browser到Server之间的中间节点(比如Proxy)也可能扮演Cache的作用,为了防止获得的只是这些中间节点的Cache,需要告诉他们,别用自己的Cache敷衍我,往Upstream的节点要一个最新的copy吧。

在IE6中,Ctrl+F5会添加一个Header

Pragma: no-cache


在Firefox 2.0中,Ctrl+F5会添加两个 
Pragma: no-cache 
Cache-Control: max-age=0

作用就是让中间的Cache对这个请求失效,这样返回的绝对是新鲜的资源

转载于:https://www.cnblogs.com/jamesldj/p/3322698.html

猜你喜欢

转载自blog.csdn.net/weixin_34417814/article/details/93770984