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

您所在的位置:网站首页 为什么电脑f9刷新不了数据网络 在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别

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

2024-07-09 14:54| 来源: 网络整理| 查看: 265

转自:http://blog.csdn.net/zoohouse/article/details/7552594

概述:

“刷新”是在你现有页面的基础上,检查网页是否有更新的内容。在检查时,会保留之前的一些变量的值,因此有可能会造成刷新后网页出现错误,或者打不开的情况;

“转到”和在地址栏回车,则相当于你重新输入网页的URL访问,这种情况下,浏览器会尽量使用已经存在于本机中的缓存。也就是说,“刷新” 是取网页的新内容来更新本机缓存,在更新的同时保留之前的一些变量;“转到”则是一种全新的访问,它会尽量使用本机缓存中的文件,但不会保留之前的变量,这下应该明白了吧?另外,按着Ctrl,还可以进行强制刷新,跟转到的作用差不多。

详述-地址栏按回车刷新

在地址栏按回车分为两种情况。

一是请求的URI在浏览器缓存中未过期,此时,使用Firefox的firebug插件在浏览器里显示的HTTP请求消息头如下:

复制代码 Host 192.168.3.174:8080 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language zh-cn,zh;q=0.5 Accept-Encoding gzip, deflate Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7 Connection keep-alive 复制代码

HTTP返回状态显示200 OK,但是请求并没有真正提交到HTTP服务器,而是浏览器发现缓存中还有未过期的文件,直接把请求拦截了,firebug里面显示所谓的“请求头消息”、“响应头消息”都是浏览器“伪造”的。这种刷新,使用的网络流量是最小的,可以说完全没有,时间消耗也是最少的。

二是请求的URI在浏览器缓存中已过期,此时,使用Firefox的firebug插件在浏览器里显示的HTTP请求消息头如下:

复制代码 Host 192.168.3.174:8080 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language zh-cn,zh;q=0.5 Accept-Encoding gzip, deflate Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7 Connection keep-alive If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT 复制代码

多了一行If-Modified-Since,浏览器对这种情况的处理方法是:再问一下服务器,请求的URI在某个时间之后有没有被修改过,而这个时间是由上次HTTP响应的Last-Modified决定的,服务器鉴定之后,如果没有修改则返回304 Not Modified,浏览器收到后,从缓存里读出内容;如果有修改则返回200 OK,并返回新的内容。

详述-按F5刷新至于F5刷新,其HTTP请求消息头如下:

复制代码 Host 192.168.3.174:8080 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language zh-cn,zh;q=0.5 Accept-Encoding gzip, deflate Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7 Connection keep-alive If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT Cache-Control max-age=0 复制代码

又多了一行Cache-Control: max-age=0,意思是说,我不管浏览器缓存中的文件过期没有,都去服务器询问一下,相当于上次HTTP响应的Expires暂时失效。服务器的响应处理流程同上。

详述-按Ctrl+F5刷新最后是Ctrl+F5刷新,其HTTP请求消息头如下:

复制代码 Host 192.168.3.174:8080 User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language zh-cn,zh;q=0.5 Accept-Encoding gzip, deflate Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7 Connection keep-alive Pragma no-cache Cache-Control no-cache 复制代码

If-Modified-Since没有了,Cache-Control换成了no-cache,此外Pragma行是为了兼容HTTP1.0,作用与 Cache-Control: no-cache是一样的。意思是,我不要缓存中的文件了,强制刷新,直接到服务器上重新下载,于是服务器的响应处理与首次请求这个URI一样,返回 200 OK和新的内容。这种刷新,使用的网络流量是最大的,也是最耗时的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3