HTTP条件Get(Conditional Get)

来源:互联网 发布:苹果系统office软件 编辑:程序博客网 时间:2024/05/18 02:20

HTTP条件Get是HTTP协议为了减少不必要的带宽浪费,提出的一种方案。详见http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

 

HTTP条件Get使用的时机:

客户端之前已经访问过某网站,并打算再次访问该网站

 

HTTP条件Get使用的方法:

客户端向服务器发送一个包询问是否在上一次访问网站的时间后是否更改了页面,如果服务器没有更新,显然不需要把整个网页传给客户端,客户端只要使用本地缓存即可,如果服务器对照客户端给出的时间已经更新了客户端请求的网页,则发送这个更新了的网页给用户。

 

下面是具体的发送接受报文:

客户断发送查询请求:

[c-sharp] view plaincopy
  1. GET / HTTP/1.1  
  2. Host: www.sina.com.cn:80  
  3. If-Modified-Since:Thu, 4 Feb 2010 20:39:13 GMT  
  4. Connection: Close  

下面是当没有更新时服务器的相应:
[c-sharp] view plaincopy
  1. HTTP/1.0 304 Not Modified  
  2. Date: Thu, 04 Feb 2010 12:38:41 GMT  
  3. Content-Type: text/html  
  4. Expires: Thu, 04 Feb 2010 12:39:41 GMT  
  5. Last-Modified: Thu, 04 Feb 2010 12:29:04 GMT  
  6. Age: 28  
  7. X-Cache: HIT from sy32-21.sina.com.cn  
  8. Connection: close  
 
如果服务器网页已经更新就会发送把客户端的请求当作一个普通的Get请求发送相应报文
[c-sharp] view plaincopy
  1. HTTP/1.0 200 OK  
  2. Date: Thu, 04 Feb 2010 12:49:46 GMT  
  3. Server: Apache  
  4. Last-Modified: Thu, 04 Feb 2010 12:49:05 GMT  
  5. Accept-Ranges: bytes  
  6. X-Powered-By: mod_xlayout_jh/0.0.1vhs.markIII.remix  
  7. Cache-Control: max-age=60  
  8. Expires: Thu, 04 Feb 2010 12:50:46 GMT  
  9. Vary: Accept-Encoding  
  10. X-UA-Compatible: IE=EmulateIE7  
  11. Content-Length: 452785  
  12. Content-Type: text/html  
  13. Age: 11  
  14. X-Cache: HIT from sy32-27.sina.com.cn  
  15. Connection: close  
  16. /*.......网页内容....... */  
 本文转自:http://blog.csdn.net/luoleicn/article/details/5289496
0 0
原创粉丝点击