下面詳細過程:html
請求方按照如下順序進行DNS解析:瀏覽器
(1)瀏覽器緩存緩存
(2)系統緩存服務器
(3)路由器緩存異步
(4)ISP DNS服務器緩存spa
(5)根域名服務器.net
若是第(5)步也找不到域名,則該域名不存在。code
創建TCP鏈接首先要找到目標服務器(獲取物理地址):(1)若是目標IP與本機IP處於同一個子網,請求方發送ARP獲取目標IP的MAC地址,不然將網關的MAC地址做爲目標MAC地址,利用路由器進行轉發。htm
請求方(客戶端)向Web服務器(服務器端)發出請求創建TCP鏈接。鏈接的過程是三次握手:對象
(1)生成HTTP數據包,依次打上TCP、IP、以太網協議頭部。其中TCP頭部主要包含本機端口與目標端口等信息,用於標識同一主機的不一樣進程,HTTP的默認端口是80,本機瀏覽器則是一個1024到65535之間的端口號。IP頭部主要包含本地IP和目標IP等信息。以太網協議頭部主要是雙方的MAC地址。若是包太大,還要進行拆包,分別發送。
(2)發送HTTP請求。
返回響應碼可能爲2xx:成功,3xx:重定向,4xx:客戶端錯誤。
在瀏覽器沒有完整接受所有HTML文檔時,它就已經開始顯示這個頁面了,若是是個靜態的頁面,拿到此就基本結束了。若是是是動態的,那麼在瀏覽器顯示HTML時,會獲取嵌入在HTML中的對象,瀏覽器會發送獲取請求來從新得到這些文件。這些請求都要經歷一個和HTML讀取相似的過程。
對於靜態的頁面內容,瀏覽器一般會進行緩存,而對於動態的內容,瀏覽器一般不會進行緩存。
客戶端持續與服務器保持聯繫來及時更新一些頁面信息。
Web服務器發起關閉TCP鏈接,方式是四次斷開:
原文傳送門:請點擊