2011-03-05 57 views
0

我有一些知識上我的問題,但不完全是。在http請求之後究竟編程地發生了什麼?當您指示瀏覽器轉到網頁時會發生什麼?

斯科特Hanselman在他的博客帖子的人說:

描述,在儘可能多的細節你認爲是相關的,深深的,你可以,當我輸入「cnn.com」會發生什麼到瀏覽器然後按「開始」。

我的問題是正是這一點,

回答

7

這就像問「描述瞭如何進行冠狀動脈搭橋」。是的,人們可以解釋如何,但在開始具體程序之前,先要先學習醫學和學習基礎知識。但是,在要點中:

  1. 您的瀏覽器需要知道cnn.com的IP地址。它本身並不是DNS lookups,而是詢問操作系統。
  2. 您的瀏覽器會連接到該IP地址的端口80
  3. 您的瀏覽器會發送一個HTTP GET請求
  4. webserver將與statuscode 200和正文內容回覆
  5. 您的瀏覽器將解析HTML
  6. 在可能包含HTML,其他資源(圖像,腳本,css文件...),瀏覽器也會獲取這些資源。
  7. 瀏覽器中完成後,將關閉連接。如果沒有,網絡服務器會。
+1

體面的答案。一旦你添加書籍,他會閱讀 – 2011-03-05 13:01:01

+0

對不起,我不相信有關互聯網的書籍。我願意鏈接到RFC,開放大學的演示文稿 - 但我猜測,因爲他提出了一個相當模糊的入門級問題,維基百科將是一個好的開始。沒有必要開始談論TCP和OSI,但是,恕我直言。 – Konerak 2011-03-05 13:05:10

+0

感謝您的答案。我同意你關於這個過程的複雜性。 – tugberk 2011-03-05 13:09:36

2

瀏覽器嘗試將名稱cnn.com解析爲其IP地址。

瀏覽器TCP連接到cnn.com的IP地址(80)

瀏覽器發送一個GET請求到服務器的默認HTTP端口上,要求爲/頁

瀏覽器說,這是試圖連接到「cnn.com」(cnn.com和bbc.com可以託管在同一託管公司,具有相同的IP地址)

瀏覽器還說什麼是您的瀏覽器,瀏覽器引擎,瀏覽器版本,操作系統和您已安裝的插件。

服務器發送一個標題說什麼對您的回覆,那種你會接受(在這種情況下,HTML)的數據,和響應的大小,未來是否可以使用。如果沒有從瀏覽器的任何保活指令

服務器關閉連接。否則,它會使用這個打開的連接,要求可能需要的其他東西(圖片頁面內,例如。)

通過的方式,下載,如果你想深入下去,看看什麼是真正安裝的Wireshark在窗簾後面走。

+0

wireshark就像小提琴手? – tugberk 2011-03-05 13:09:54

+0

+1對於wireshark建議 - 反向工程網絡協議的一個好開始。 – Konerak 2011-03-05 13:10:16

+0

@ tugberk:是的,wireshark就像提琴手一樣,但更寬泛一點:它捕獲任何傳出流量(所以它還包括當你在MSN上通話或獲取電子郵件時)。 – Konerak 2011-03-05 13:10:58

相關問題