在瀏覽器地址欄按回車、F五、Ctrl+F5刷新網頁的區別

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

概述:瀏覽器

「刷新」是在你現有頁面的基礎上,檢查網頁是否有更新的內容。在檢查時,會保留以前的一些變量的值,所以有可能會形成刷新後網頁出現錯誤,或者打不開的狀況;緩存

「轉到」和在地址欄回車,則至關於你從新輸入網頁的URL訪問,這種狀況下,瀏覽器會盡可能使用已經存在於本機中的緩存。也就是說,「刷新」 是取網頁的新內容來更新本機緩存,在更新的同時保留以前的一些變量;「轉到」則是一種全新的訪問,它會盡可能使用本機緩存中的文件,但不會保留以前的變量,這下應該明白了吧?另外,按着Ctrl,還能夠進行強制刷新,跟轉到的做用差很少。服務器

詳述-地址欄按回車刷新網絡

在地址欄按回車分爲兩種狀況。app

一是請求的URI在瀏覽器緩存中未過時,此時,使用Firefox的firebug插件在瀏覽器裏顯示的HTTP請求消息頭以下:spa

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裏面顯示所謂的「請求頭消息」、「響應頭消息」都是瀏覽器「僞造」的。這種刷新,使用的網絡流量是最小的,能夠說徹底沒有,時間消耗也是最少的.net

二是請求的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,並返回新的內容。code

詳述-按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和新的內容。這種刷新,使用的網絡流量是最大的,也是最耗時的。

相關文章
相關標籤/搜索