1.輸入域名後客戶端從本地緩存中尋找匹配的ip地址,若是找不到則向DNS域名解析服務器發起解析請求來獲取
2.在創建鏈接以前,客戶端與服務器進行TCP三次握手,即
客戶端向服務器發送 SYN 同步序列編號(Synchronize Sequence Numbers)
服務器收到並響應,向客戶端發送SYN+ACK(Acknowledge character)
客戶端收到後,再向服務器發送ACK,結束
3.客戶端向服務器發送HTTP請求
HTTP請求包括請求報頭和請求主體兩個部分,其中請求報頭包含了相當重要的信息,包括
請求的方法(GET / POST)、目標url、遵循的協議(http / https / ftp…),返回的信息
是否須要緩存,以及客戶端是否發送cookie等。
4.服務器向客戶端發送請求的相應資源,找不到則顯示404 Not Found
5.客戶端瀏覽器收到後開始進行進行渲染,構建DOM樹、css規則樹和JS,則能夠顯示頁面
複製代碼
瀏覽器收到html數據後進行解析,構建DOM樹+CSS規則樹->渲染樹(Render樹),而後進行繪製,頁面展現
複製代碼
HTTP協議全稱HyperText Transfer Protocol,翻譯過來就是超文本傳輸協議位於TCP/IP四層模型當中
的應用層,其實就是客戶端和服務器創建通訊的一套規則。
複製代碼
客戶端首先發送SYN=一、ACK=0,向服務器請求鏈接
服務器端成功接收後,贊成創建鏈接,向客戶端發送SYN=一、ACK=1
客戶端收到贊成鏈接後,在向服務器發送ACK=1,確認創建鏈接,即客戶端與服務端可進行數據通訊
複製代碼
客戶端關閉:
客戶端向服務器發送FIN=1,表示請求關閉鏈接
服務器端收到後,向客戶端發送ACK=1,表示贊成關閉鏈接
服務器端關閉:
服務器端向客戶端發送FIN=1,表示請求關閉鏈接
客戶端收到後,向服務器端發送ACK=1,表示贊成關閉鏈接
複製代碼
注意:創建鏈接後進行數據傳輸,存在必定延遲,因此關閉鏈接須要分開進行css