What really happens when you navigate to a URL

來源:互聯網
上載者:User

標籤:工具   exp   訪問   book   靜態   font   pat   發送   ati   

感冒了超級不舒服,最近有點過度焦慮了,認真再看看這篇經典文章,翻譯如下,以此靜心!

 

1、  瀏覽器地址欄輸入網址

2、  瀏覽器尋找網域名稱對應的IP地址;DNS網域名稱解析系統按照如下順序進行尋找:

  2.1 瀏覽器緩衝;有時瀏覽器會短暫的緩衝DNS尋找記錄,作業系統並不會告訴瀏覽器每個DNS記錄的存留時間,所以瀏覽器在固定的時間緩衝他們 (不同瀏覽器之間,2 - 30分鐘);

  2.2 作業系統緩衝;瀏覽器緩衝中尋找無果的情況下,瀏覽器會進行一個系統調用,gethostbyname的函數,作業系統有自身的緩衝。

  2.3 路由器緩衝;

  2.4 DNS伺服器上的ISP緩衝;具體指網路服務供應商給網頁批量訪問加速的一種解決方案,將當期訪問量比較大的網頁放在緩衝中,從而提高訪問速度,ISP緩衝主要以緩衝靜態頁面為主,如新浪的新聞頁;

  2.5 遞迴搜尋;ISP的DNS伺服器開始遞迴搜尋,從根命名伺服器,通過com頂級命名伺服器,直到Facebook的命名伺服器(假設請求的url地址是:Facebook.com)。

3、  瀏覽器發送http請求到web伺服器

以下面這個請求為例:

GET http://facebook.com/ HTTP/1.1

Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]

Accept-Encoding: gzip, deflate

Connection: Keep-Alive

Host: facebook.com

Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]

 

Get請求定義了要請求的url地址,瀏覽器也通過User-Agent表明了身份,具體是通過什麼瀏覽器訪問的。Accept 和 Accept-Encoding 也聲明了接收的類型,Connection要求標頭的設定告訴伺服器保持tcp串連。還有一些記錄了登陸使用者的帳號密碼或其他使用者佈建的資訊的cookies也會隨每一次的請求一併發送到伺服器。在最佳化網站時,可以通過fiddle或firebug等工具進行這些詳細資料的查看。

注意:在URL http://facebook.com/末尾的斜杠也是非常重要的,該請求瀏覽器可以直接添加末尾斜杠,但是譬如http://example.com/folderOrFile,瀏覽器就不能在末尾自動的加一個斜杠,因為folderOrFile是目錄還是檔案不太確定,在這樣的情況下,瀏覽器請求的時候不帶斜杠,伺服器將響應一個重新導向,從而導致不必要的往返。

4、  facebook 的伺服器響應一個301永久重新導向的狀態代碼,告知瀏覽器去訪問“http://www.facebook.com/” 而不是 “http://facebook.com/”。

伺服器不直接響應的原因有:一個是搜尋引擎排名,二是多個內容相同的url在緩衝方面並不友好。

5、  瀏覽器重新導向

6、  伺服器處理請求;

這可能看起來像一個簡單的任務,但事實上,這裡發生了很多有趣的事情,即便是一個簡單的部落格網站,更不用說在大規模可伸縮的像facebook這樣的網站上。

比如說資料的儲存,分區,夜間資料更新等。

7、  伺服器返回一個200的html請求;Content-Encoding告知瀏覽器響應主體部分通過gzip進行了壓縮。

8、  瀏覽器開始渲染html;

9、  瀏覽器繼續發送嵌在html中的請求。Images,css,js等,每一個地址都要經曆類似於HTML頁面請求的過程,網域名稱的DNS尋找,發送請求URL,遵循重新導向。。。

靜態檔案和動態網頁不同,可以在瀏覽器中進行緩衝,有些檔案直接從緩衝中得到,並沒有經過伺服器,瀏覽器通過解讀包含Expires回應標頭設定的檔案知道如何去緩衝特定的檔案,同時,每個響應一般都會有一個ETag(類似於版本號碼),如果瀏覽器看到一個已經存在相同ETag的檔案,會立即中斷該條請求的通訊線路。

訪問量比較大的網站會設定CDN,緩衝一些靜態資源,實現負載平衡。

10、瀏覽器發送非同步ajax請求。

 

本文參考:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/

What really happens when you navigate to a URL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.