Today's Question:  What's your opinion about Alibaba mooncake incident?        GIVE A SHOUT

Technical Article => Other =>  Other

Differences among Enter,F5 and Ctrl+F5 in webpage refresh

  sonic0002      2013-06-13 22:03:35      2,477    0    0

When we press Enter, F5 or Ctrl+F5 to refresh a webpage, is there any difference among them? Actually it's yes, we can find the difference from the request header and response header information.

There are two cases about pressing Enter in the address bar. First if the page requested is cached and not expired in the browser, we can find the header information sent by the browser is :

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

The HTTP response status is 200 OK, however, there is no record for this request in the access.log of Nginx server, it means the request is not sent to the HTTP server since there is a cached file. The request header and response header in firebug are faked by the browser. This kind of refresh costs minimum bandwidth and takes little time.

The second case is the page is expired, now the HTTP request will be:

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

There is one more line appended to the request header : If-Modified-Since, there is also one record in access.log of Nginx server. What happens is it will first check whether the file is modified after If-Modified-Since, and this time is determined by the last HTTP response's Last-Modified attribute, if it's not modified, then server will respond with 304 Not Modified status and browser then will read content from the cache. If it's modified, server will respond 200 OK and send the new content.

Regarding F5, the HTTP request header will be :

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

There is one more line Cache-Control : max-age=0 appended,it means it doesn't matter whether the file in the browser cache is expired or not, it will check on the server about the file status.

Finally regarding Ctrl+F5, the HTTP request header is :

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 is gone, instead Cache-Control is changed to no-cache, and also Pragma line is for compabtible with HTTP 1.0. This means we don't care abot the cache and we need a forced refresh and download the file from server directly. This kind of refresh cost the most bandwidth and takes most time.

Source : http://blog.csdn.net/yui/article/details/6584401

REFRESH F5 CTRL+F5

  SAVE AS PDF   MARK AS READ   MARK AS IMPORTANT

Share on Facebook  Share on Twitter  Share on Google+  Share on Weibo  Share on Reddit  Share on Digg  Share on Tumblr    Delicious

  RELATED


  0 COMMENT


No comment for this article.


  WRITE ARTICLE

Difference between man and woman

By rookie