1. 程式人生 > >瀏覽器輸入一個URL經歷了什麼

瀏覽器輸入一個URL經歷了什麼

一:相關概念說明:

 1.1: DNS(Domain name System)快取: (域名系統)(檢視本機的ipconfig/displaydns)
           當電腦把一個域名解析完之後,它把這個這個域名和那個主機Ip地址相關聯起來了,電腦吧這個關係存到DNS快取表中,下次電腦再輸入www.baidu.com的時候,電腦通過查詢DNS快取,就可以知道這個域名對應的IP地址了,不再進行域名解析了,提高了效率
 1.2: ip地址: 
     ip地址對應好像門牌號,我們通過這個地址可以找到主機的位置
1.3:域名:(domain name):
Ip地址是4個數字,用頓號隔開,這個東西不好記,我們一般用字母搭配數字的方式使用比如.www.baidu.com.,Ip地址和域名不是一一對應的,一個域名可以繫結多個IP,但在同一時刻一個域名只能解析成一個Ip地址(這個活由我們的DNS幫我們完成)

二:相關請求大致流程

1:瀏覽器根據域名解析出來Ip地址2:瀏覽器根據IP地址進行Socket通訊3:瀏覽器和客戶端進行通訊,瀏覽器請求,伺服器接收請求

4:瀏覽器和伺服器斷開連結

三:具體的流程

3.1:查詢過程

    1:瀏覽器先從自己DNS表中查詢看有沒有.www.baidu.com(對應的IP地址)    2:從作業系統中的DNS表中查詢(維護域名和ip地址對應關係的一張表)    3:從作業系統host資料夾中查詢    4:作業系統將域名傳送到LDNS(本地區域域名系統),比如我在工大,那麼LDNS伺服器就在      我們學校, 查詢DNS快取,繼續失敗的話傳送一個迭代的DNS解析請求.         1:LDNS向Root name server(根域名伺服器,儲存每個域名的域,比如.com域是多少,.cn是多少),Root name Server返回com域的頂級域名伺服器地址
         2:LDNS向com頂級域名伺服器傳送請求,返回www.bai.com域名伺服器的地址         3:LDNS向www.baidu.com域名伺服器傳送請求,得到www.baidu.com的ip地址5:LDNS得到Ip地址返給作業系統,並把這個iP地址快取到DNS表中6:作業系統將地址返給瀏覽器.同時也將IP地址快取起來7:現在瀏覽器已經得到了Ip地址


2:建立連線(三次握手)(採用TCP協議)(客戶端兩次,服務端一次)

   知道了百度的Ip地址,接下來是三次握手的實現連線  1:客戶機向伺服器傳送建立連線請求(你好,很高興認識你)  2:伺服器接到請求後傳送同意連線請求(好的,很高興認識你)  3:客戶機接收到伺服器同意請求後,再次向伺服器傳送確認訊號(我也很高興認識你),自此主機和伺服器兩個建立連線

3:網頁請求和顯示

   建立連線之後,那麼伺服器和客戶機之間就會進行通訊 3.1:客戶機瀏覽器根據IP地址生成Http請求,請求包含檔案的位置,請求的方式 3.2:伺服器接收到http請求內容決定如何獲取相應的HTML檔案 3.3:伺服器將相應的HTML檔案傳送給瀏覽器 3.4: 瀏覽器還沒完全接收HTML檔案的時候,開始渲染,顯示網頁 3.5:根據html程式碼,繼續請求圖片,

4:斷開過程(四次揮手過程)(服務端傳送我知道了和我也走了訊號)

1:客戶機向伺服器傳送一個斷開的請求(不早了,我該走了)2:伺服器接受到請求傳送確認請求的訊號(知道了)3:伺服器向客戶端傳送斷開通知(我也該走了)4:客戶機接受到斷開通知,反饋一個訊號(好的),伺服器接收到反饋訊號斷開連結