第一步:咱們會在瀏覽器地址欄中輸入一個url數據庫
第二步:瀏覽器會先查看瀏覽器緩存
系統緩存 -> 路由器緩存
瀏覽器
若是緩存中存有先前訪問過的數據,則會直接顯示在屏幕中;沒有的話,則進行第三步操做
第三步:在發送http請求前,須要域名解析(DNS解析)【DNS域名系統】[能夠將域名和IP地址相互映射的一個分佈式數據庫],解析獲取相應的IP地址緩存
第四步:瀏覽器向服務器發起TCP鏈接,與瀏覽器創建TCP三次握手。(TCP即傳輸控制協議。TCP鏈接是互聯網鏈接協議集的一種)服務器
三次握手:(TCP創建鏈接的過程,稱爲三次握手) 第一次,客戶端向服務器發送SYN同步報文段,請求創建鏈接 第二次,服務器確認收到客戶端的鏈接請求,並向客戶端發送SYN同步報文,表示要向客戶端創建鏈接 第三次,客戶端收到服務器端的確認請求後,處於創建鏈接狀態,向服務器發送確認報文 客戶端是在收到確認請求後,先創建鏈接 服務器是在收到最後客戶端的確認後,創建鏈接 發起鏈接請求的必定是客戶端 注意: 兩次握手的話,服務器方不肯定客戶端有沒有收到報文,中途可能致使報文丟失而服務器不知,客戶端可能就會不斷髮送報文,而服務器處理鏈接的數量是有限的,此時創建的鏈接會消耗大量的資源,可能會致使服務器崩潰 有鏈接就會有斷開,那麼鏈接是三次握手,斷開就是四次揮手 什麼是四次揮手呢? 第一次,A端像B端發送FIN結束報文段,準備關閉鏈接 第二次,B端確認A端的FIN,表示本身已經收到對方關閉鏈接的請求中間這段時間,A端中止向B端發送數據,可是B端能夠向A端發送數據,要將本身未處理完任務處理完 第三次,B端向A端發送FIN結束報文段,準備關閉鏈接 第四次,A端確認B端的FIN,進入TIME_WAIT狀態,此時A端進程已經退出,可是鏈接還在 當B端收到A端的ACK以後,先斷開鏈接 當A端等待2 MSL以後,確認的B端接收到ACK後,再斷開鏈接 發起斷開鏈接請求的一端最後要進入有一個TIME_WAIT狀態 發起鏈接請求的能夠是客戶端也能夠是服務器端
第五步:握手成功後,瀏覽器向服務器發送 http 請求,請求數據包分佈式
第六步:服務器處理收到的請求,將數據返回至瀏覽器網站
第七步:瀏覽器收到 HTTP 響應url
第八步,讀取頁面內容,瀏覽器渲染,解析 HTML 源碼code
第九步:生成DOM樹,解析CSS樣式,js交互進程
第十步:客戶端和服務器交互資源
第十一步:Ajax查詢