瀏覽器再獲得URL後,調用Socket,使用TCP協議,HTTP請求會被封裝,加入本地端口,目標端口等信息 IP地址是在IP協議中被封裝的。但光有IP地址是不夠的,由於設備是能夠移動的,IP地址並不與設備綁定。因此還有一個MAC要被封裝,每一個網卡的MAC地址都是固定且惟一的css
DNS其實是一個域名與IP對應的數據庫,DNS解析主要是爲了獲取到域名對應的IP,用於下一步的鏈接創建html
DNS的解析會按照如下順序嘗試獲取IP,任意一步找到直接返回IP:chrome
1. 查詢瀏覽器緩存,瀏覽器會對最近訪問的地址的DNS進行緩存,例如chrome對每一個域名會默認緩存60s
2. 檢查系統緩存,也就是hosts文件中配置的域名與IP的對應關係
3. 獲取路由器的DNS緩存
4. 查詢ISP服務商DNS緩存,即本地服務器緩存
5. 最後手段:遞歸查詢,以 根域名服務器 --> 頂級域名服務器 --> 極限域名服務器 的順序搜索對應域名的IP
複製代碼
經過Socket API發送數據,能夠選擇TCP或UDP協議數據庫
1. Socket(套接字)是計算機之間進行通訊的一種約定或一種方式
2. 在應用層和傳輸層之間的一個抽象層
3. 它把TCP/IP層複雜的操做抽象爲幾個簡單的接口
4. 供應用層調用已實現進程在網絡中通訊
複製代碼
根據上一步獲取到的IP地址定位到目標主機,開始於其創建TCP鏈接,也就是三次握手創建鏈接:瀏覽器
用上一步創建的鏈接發送http request請求命令和請求頭信息緩存
服務器收到信息都會返回應答頭信息bash
若是response的狀態碼出現3XX(跳轉),未受權(401),錯誤(4XX和5XX)會有不一樣的處理。服務器
若是response status 爲304(內容未更改)瀏覽器則會從原本緩存加載內容進行呈現網絡
經過MIME類型,瀏覽器知道要用頁面渲染引擎來處理HTML文件,整個渲染過程都由瀏覽器來處理,主要分爲如下步驟:tcp
HTTP、DNS
TCP/UDP
IP