注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Tenhlf的博客

 
 
 

日志

 
 

浏览器可以自动修改URL  

2008-07-03 14:51:51|  分类: web技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  今天,一个同事访问http://www.ibm.com.cn网站时,觉得很奇怪,明明键入的是http://www.ibm.com.cn,怎么IE自动把它变成了http://www.ibm.com/cn/,而且已访问结果也是正确的。他觉得很费解,IE难道有这么智能?

  只要了解HTTP协议,以上转换的原理很简单,其过程大致如下:

  1.为了从www.ibm.com.cn上取得网页,浏览器做了类似下面的事情。

  telnet www.ibm.com.cn 80

  GET / HTTP/1.1

  Host: www.ibm.com.cn

  Accept-Languge: zh_CN

  这时WEB服务器上返回如下内容:

  HTTP/1.1 301 Moved Permanently

  Date: Thu, 16 Feb 2006 12:14:13 GMT

  Server: IBM_HTTP_Server

  Location: http://www.ibm.com/link/redirect.www.ibm.com/www.ibm.com.cn/

  Content-Length: 268

  Content-Type: text/html

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

  <html>

  <head><title>301 Moved Permanently</title></head><body>

  h1>Moved Permanently</h1>

  <p>The document has moved

  <a href="http://www.ibm.com/link/redirect.www.ibm.com/www.ibm.com.cn/">here</a>.

  </p>

  </body>

  </html>

  根据HTTP协议里的规定,3开头的错误码表示重定向,并告诉浏览器从指定的URL重新获取文件。

  2.于是,浏览器又做了类似下面的事情。

  telnet www.ibm.com 80

  GET /link/redirect.www.ibm.com/www.ibm.com.cn/

  Host: www.ibm.com.cn

  Accept-Languge: zh_CN

  这时WEB服务器上返回如下内容:

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

  <html><head><title>302 Found</title></head><body>

  <h1>Found</h1>

  <p>The document has moved

  <a href="http://www.ibm.com/cn/">here</a>.</p>

  </body></html>

  还是重定向。

  3.于是,浏览器又做了类似下面的事情。

  telnet www.ibm.com 80

  GET /cn/ HTTP/1.1

  Host: www.ibm.com.cn

  Accept-Languge: zh_CN

  这回终于得到了网面真正的内容。

  参考:RFC 2616中的错误码:

  Status-Code =

   "100" ; Section 10.1.1: Continue

   | "101" ; Section 10.1.2: Switching Protocols

   | "200" ; Section 10.2.1: OK

   | "201" ; Section 10.2.2: Created

   | "202" ; Section 10.2.3: Accepted

   | "203" ; Section 10.2.4: Non-Authoritative Information

   | "204" ; Section 10.2.5: No Content

   | "205" ; Section 10.2.6: Reset Content

   | "206" ; Section 10.2.7: Partial Content

   | "300" ; Section 10.3.1: Multiple Choices

   | "301" ; Section 10.3.2: Moved Permanently

   | "302" ; Section 10.3.3: Found

   | "303" ; Section 10.3.4: See Other

   | "304" ; Section 10.3.5: Not Modified

   | "305" ; Section 10.3.6: Use Proxy

   | "307" ; Section 10.3.8: Temporary Redirect

   | "400" ; Section 10.4.1: Bad Request

   | "401" ; Section 10.4.2: Unauthorized

   | "402" ; Section 10.4.3: Payment Required

   | "403" ; Section 10.4.4: Forbidden

   | "404" ; Section 10.4.5: Not Found

   | "405" ; Section 10.4.6: Method Not Allowed

   | "406" ; Section 10.4.7: Not Acceptable

   | "407" ; Section 10.4.8: Proxy Authentication Required

   | "408" ; Section 10.4.9: Request Time-out

   | "409" ; Section 10.4.10: Conflict

   | "410" ; Section 10.4.11: Gone

   | "411" ; Section 10.4.12: Length Required

   | "412" ; Section 10.4.13: Precondition Failed

   | "413" ; Section 10.4.14: Request Entity Too Large

   | "414" ; Section 10.4.15: Request-URI Too Large

   | "415" ; Section 10.4.16: Unsupported Media Type

   | "416" ; Section 10.4.17: Requested range not satisfiable

   | "417" ; Section 10.4.18: Expectation Failed

   | "500" ; Section 10.5.1: Internal Server Error

   | "501" ; Section 10.5.2: Not Implemented

   | "502" ; Section 10.5.3: Bad Gateway

   | "503" ; Section 10.5.4: Service Unavailable

   | "504" ; Section 10.5.5: Gateway Time-out

   | "505" ; Section 10.5.6: HTTP Version not supported

   | extension-code

  评论这张
 
阅读(544)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018