你知道當咱們在瀏覽器中輸入 URL 後到得到咱們須要的網頁資源,這中間須要經歷怎樣的流程嗎?客戶端(瀏覽器)是如何找到目標服務器並從服務器得到所須要的資源的?數據庫
若是你從未思考或瞭解過上述的問題,那麼我相信本文會對你在平常的項目實踐中有必定的幫助,在本文中我將盡量詳細地介紹瀏覽器中輸入 URL 回車後與服務器進行通訊的流程。瀏覽器
當咱們在瀏覽器中輸入 URL 而且回車後,主要發生四個過程:查找 IP 、創建鏈接、相互通訊、斷開鏈接。主要流程概述以下:緩存
在詳細介紹各個流程前,讓咱們先來了解一下接下來須要接觸到的一些名詞概念。服務器
IP 地址:指互聯網協議地址。是 IP 協議提供的一種統一的地址格式,它爲互聯網上的每個網絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差別。互聯網上每個網絡和每一臺主機都會被分配的一個 IP 地址。咱們能夠把 IP 地址當成具體到門牌號碼的地址,只有經過 IP 地址才能肯定一臺主機的位置。網絡
域名:是由一串用點分隔的名字組成的 Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。因爲純數字的 IP 地址難以被記憶,因此使用有表明意義的字符(域名)來代替純數字的 IP 地址,但最終仍須要經過域名來查找其對應的 IP 地址纔可以找到相應主機的位置。分佈式
DNS :域名系統,是互聯網的一項服務。它做爲將域名和 IP 地址相互映射的一個分佈式數據庫,可以令人更方便地訪問互聯網。操作系統
URL :統一資源定位符,有時也被俗稱爲網頁地址(網址)。指的是因特網上各類資源的地址。cdn
這裏須要區分一下域名(或者 IP 地址)與 URL 的區別,域名肯定的是因特網中某臺主機的位置;而 URL 則要更爲具體,指某臺主機中某個資源的具體位置。如 ttsy.com 是一個域名,經過這個域名能夠找到其相對應 IP 地址的主機,而 ttsy.com/a/b.jpg 是一個 URL,經過這個 URL 能夠找到這臺主機上的路徑爲 /a 的 b.jpg 圖片資源。圖片
那麼接下來詳細介紹上述四個流程~ip
在咱們輸入 URL 而且按下回車時,瀏覽器首先要作的即是經過域名查找對應的 IP 地址,這個過程也稱做 DNS 解析。具體的查找過程以下:
瀏覽器得到 IP 地址後,就會對目標服務器發起創建 TCP 鏈接的請求,創建鏈接主要有三個步驟,通常稱爲客戶端與服務器端的三次握手:
客戶端與服務器創建鏈接後,便會開始進行通訊,這裏以客戶端向服務器請求網頁資源的過程爲例:
客戶端與服務器的相互通訊完成後,便會斷開鏈接,斷開鏈接主要有四個步驟,通常稱爲客戶端與服務器端的四次揮手:
爲何客戶端與服務器斷開鏈接是四次揮手呢?主要是由於當客戶端告訴服務器想斷開鏈接的時候,服務器的數據不必定已處理完畢,因此服務器是先告訴客戶端說已經收到了它想斷開鏈接的請求,而後當服務器中數據處理完畢時,便通知客戶端並請求斷開鏈接,客戶端收到後便斷開鏈接並通知服務器,服務器收到後才斷開鏈接。
以爲還不錯的小夥伴,能夠關注一波公衆號哦。