瀏覽器可以自動修改URL?

李先靜發表於2020-04-06

今天,一個同事訪問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中的錯誤碼:

 

相關文章