在瀏覽器中輸入網站域名並按下回車的詳細過程
阿新 • • 發佈:2018-03-02
部分 路由器 完成 是個 tis cli 圖片 聯系 led
主要有以下幾個部分:
1 DNS解析,獲取Web服務器IP
2 建立TCP連接
3 向Web服務器發送HTTP請求
4 Web服務器收到請求並處理
5 Web服務器返回響應
6 瀏覽器對響應解碼,並顯示數據
7 頁面顯示完成後,瀏覽器發送異步請求
8 關閉TCP連接
下面詳細過程:
1 DNS解析,獲取Web服務器IP
請求方按照以下順序進行DNS解析:
(1)瀏覽器緩存
(2)系統緩存
(3)路由器緩存
(4)ISP DNS服務器緩存
(5)根域名服務器
如果第(5)步也找不到域名,則該域名不存在。
2 建立TCP連接
建立TCP連接首先要找到目標服務器(獲取物理地址):(1)如果目標IP與本機IP處於同一個子網,請求方發送ARP獲取目標IP的MAC地址,否則將網關的MAC地址作為目標MAC地址,利用路由器進行轉發。
請求方(客戶端)向Web服務器(服務器端)發出請求建立TCP連接。連接的過程是三次握手:
3 向Web服務器發送HTTP請求
(1)生成HTTP數據包,依次打上TCP、IP、以太網協議頭部。其中TCP頭部主要包含本機端口與目標端口等信息,用於標識同一主機的不同進程,HTTP的默認端口是80,本機瀏覽器則是一個1024到65535之間的端口號。IP頭部主要包含本地IP和目標IP等信息。以太網協議頭部主要是雙方的MAC地址。如果包太大,還要進行拆包,分別發送。
(2)發送HTTP請求。
4 Web服務器收到請求並處理
5 Web服務器返回響應
返回響應碼可能為2xx:成功,3xx:重定向,4xx:客戶端錯誤。
6 瀏覽器對響應解碼,並顯示數據
在瀏覽器沒有完整接受全部HTML文檔時,它就已經開始顯示這個頁面了,如果是個靜態的頁面,拿到此就基本結束了。如果是是動態的,那麽在瀏覽器顯示HTML時,會獲取嵌入在HTML中的對象,瀏覽器會發送獲取請求來重新獲得這些文件。這些請求都要經歷一個和HTML讀取類似的過程。
對於靜態的頁面內容,瀏覽器通常會進行緩存,而對於動態的內容,瀏覽器通常不會進行緩存。
7 頁面顯示完成後,瀏覽器發送異步請求
客戶端持續與服務器保持聯系來及時更新一些頁面信息。
8 關閉TCP連接
Web服務器發起關閉TCP連接,方式是四次斷開:
原文傳送門:請點擊
在瀏覽器中輸入網站域名並按下回車的詳細過程