在瀏覽器中輸入www.baidu.com後執行的全過程

http 請求過程——當咱們在瀏覽器輸入 www.baidu.com,而後回車以後的詳解。html

1)域名解析(域名 www.baidu.com 變爲 ip 地址)。web

  1.瀏覽器搜索本身的DNS緩存(維護一張域名與IP的對應表),若沒有,則搜索操做系統的DNS緩存(維護一張域名與IP的對應表),若沒有,則搜索操做系統的hosts文件(維護一張域名與IP的對應表)瀏覽器

  2.若都沒有,則找 tcp/ip 參數中設置的首選 dns 服務器,即本地 dns 服務器(遞歸查詢),本地域名服務器查詢本身的dns緩存,若是沒有,則進行下面的迭代查詢緩存

    2.1本地dns服務器向根域名服務器發起請求,根域名服務器返回com域的頂級域名服務器的地址。服務器

    2.2本地dns服務器向com域的頂級域名服務器發起請求,返回baidu.com權限域名服務器(保存該區中全部主機域名到IP的映射)地址。網絡

    2.3本地dns服務器向baidu.com權限域名服務器發起請求,獲得www.baidu.com的IP地址。tcp

  3.本地dns服務器將IP返回給操做系統,同時緩存IP操作系統

  4.操做系統將IP返回給瀏覽器,同時緩存IPhtm

2)發起 tcp 的三次握手,創建 tcp 鏈接。瀏覽器會以一個隨機端口(1024-65535)向服務端的 web 程序 80 端口發起 tcp 的鏈接.這個請求(原始的 http 請求,通過原始的 tcp/ip 四層模型層層封裝),到達服務器端後,進入網卡,而後進入內核的協議棧(一層一層撥開),而後到達 web 應用程序,最終創建了 tcp/ip 連接。blog

3)創建 tcp 鏈接後發起 http 請求。

4)服務器響應 http 請求,客戶端獲得 html 代碼。服務器 web 應用程序收到 http 請求後,就開始處理請求,處理以後就返回給瀏覽器 html 文件。

5)瀏覽器解析 html 代碼,並請求 html 中的資源。

6)瀏覽器對頁面進行渲染,並呈現給用戶。

 

涉及到的協議

(1) 應用層:HTTP(WWW訪問協議),DNS(域名解析服務)

(2) 傳輸層:TCP(爲HTTP提供可靠的數據傳輸),UDP(DNS使用UDP傳輸)

(3) 網絡層:IP(IP數據數據包傳輸和路由選擇),ICMP(提供網絡傳輸過程當中的差錯檢測),ARP(將本機的默認網關IP地址映射成物理MAC地址)

 ps:ARP緩存本局域網內的IP和MAC的映射。若是在本局域網不在緩存中,則廣播請求信息,目的主機會以單播形式回送MAC;若是不在本局域網中,則找到本網絡的路由器MAC地址,由路由器去找到目的MAC地址。

 

ping www.baidu.com用到的協議

DNS, UDP, ICMP, ARP。

相關文章
相關標籤/搜索