輸入一個URL後發生了什麼

1. DNS解析

輸入一個網址並按回車之後瀏覽器會根據輸入的URL查找對應的IP,具體過程如下:
(1)查找瀏覽器緩存,瀏覽器會保存一段時間內訪問過的一些網址的DNS信息。
(2)如果沒有找到對應的IP,瀏覽器就調用操作系統緩存來繼續查找這個網址的DNS信息。
(3)如果還是沒找到對應的IP,就發送一個請求到路由器上,路由器在路由器緩存上查找記錄的DNS信息。
(4)如果還是沒有找到對應的IP,這個請求就會被髮送到本地DNS服務器,本地DNS上緩存了一張域名與之IP地址對應的表格,有就直接返回域名對應的IP地址
(5)如果還是沒有找到對應的IP, ISP的DNS服務器會將請求發向根域名服務器,然後到頂級域名DNS再到權威DNS,權威DNS是域名解析結果的原出處,它查詢到對應的IP地址後告訴本地DNS。
(6)如果到了這裏還是找不到域名的對應信息,那就域名錯誤了。
DNS根據域名查詢IP地址的過程爲:瀏覽器緩存 --> 操作系統緩存 --> 路由器緩存–>本地DNS緩存 --> 根DNS–>頂級DNS–>權威DNS。DNS

2. TCP連接

瀏覽器得到IP後,向服務器發送TCP連接。TCP三次握手目前HTTP協議大多都是1.1,在1.1的協議裏,默認開啓了keep-alive,這樣建立的TCP連接,可以在多次請求中複用,不需要重新連接。

3.瀏覽器發送HTTP請求

瀏覽器和服務器建立連接以後,瀏覽器就給這個IP地址的服務器發送一個http請求,方式爲get,,就是去服務器獲取一些資源,對於訪問頁面來說,要獲取的頁資源往往是一個頁面。其本質是在建立起的TCP連接中,按照HTTP協議標準發送一個索要網頁的請求。
發送完請求接下來就是等待迴應了。

4.服務器處理請求

服務器收到瀏覽器的請求以後,會解析這個請求(讀請求頭),然後生成一個響應頭和具體響應內容。接着服務器會傳回來一個響應頭和一個響應,響應頭告訴了瀏覽器一些必要的信息,例如重要的Status Code,2開頭如200表示一切正常,3開頭表示重定向,4開頭是客戶端錯誤,如404表示請求的資源不存在,5開頭表示服務器端錯誤。響應就是瀏覽器請求的頁面內容。

5.瀏覽器解析渲染頁面

6.關閉TCP連接

當數據完成請求到返回的過程之後,根據Connection的Keep-Alive屬性可以選擇是否斷開TCP連接,HTTP/1.1一般支持同一個TCP多個請求,而不是1.0版本下的完成一次請求就發生斷開。TCP四次揮手

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章