在浏览器地址栏按回车、F5、ctrl+F5刷新页面的区别

url地址栏里敲击enter:这样的刷新,大家可以在firebug里看一下,只有少数的请求会发送出去,而且几乎没有图片的请求,这是因为请求时会先检查本地是不是缓存了请求的图片,如果有缓存而且没有过期(过期可以通过该图片请求的header查看),他就不会发出这个图片request。


f5:f5刷新比enter略慢,为什么呢,因为他还是把所有请求都发给了server,只是在request里的header里有信息

Expires Fri, 28 Jun 2013 07:29:55 GMT
Last-Modified Mon, 21 Mar 2011 09:26:23 GMT

服务器判断还没有过期,就直接返回304not modified,在firebug里看就是这些304的请求都为灰色。因为直接返回304这样的信息,而不是图片等内容,他比ctrl+f5快,但是比enter慢,因为他还是把所有请求都发了一遍,比enter的不发请求自然是慢的。


ctrl+f5:这个就要慢了,应为所有的请求都是重新发送,重新从server读取内容,一点cache都没有读。为了防止在server的cache里读取,在ctrl+f5刷新时,request的header里还加了特殊字段,这个大家可以用firebug看一下,还挺有意思的。在request header 里会加pragma:no-cache cache control:no-cache。这两个就是告诉服务器到浏览器中间的所有节点,没有cache,看到这个中间节点也不查自己的cache,保证请求都是从server获得的。

posted @ 2015-09-01 15:07  篮球不止是个球  阅读(555)  评论(0编辑  收藏  举报