大緻流程
- URL解析
- DNS查詢
- 建立TCP連接配接
- 浏覽器發送HTTP請求
- 伺服器端響應請求
- 渲染頁面
1 URL解析
請求發起後,浏覽器首先會解析URL得到協定,域名,端口,資源路徑等資訊
2 浏覽器查找域名對應的ip位址
- 浏覽器先檢查自身的緩存中是否存在該域名和ip的映射關系,存在則直接傳回ip位址;
- 如果沒有,則檢查是否存在本地主機的Hosts檔案裡,沒有則向本地DNS伺服器發送請求,本地DNS伺服器一般都是你的網絡接入伺服器商提供,如中國移動
- 查詢域名對應ip的DNS請求到達本地DNS伺服器之後,本地DNS伺服器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接傳回結果,此過程是遞歸的方式進行查詢。如果本地DNS伺服器緩存中沒有該記錄,則本地DNS伺服器還要向DNS根伺服器進行查詢
- 根DNS伺服器沒有記錄具體的域名和Ip位址的對應關系,而是告訴本地DNS伺服器,你可以到域伺服器上去繼續查詢,并給出域伺服器的位址。這是個疊代的過程;
- 本地DNS伺服器繼續向域伺服器送出請求,域伺服器一般也不會直接傳回域名和IP的對應關系,而是告訴本地DNS伺服器,你的域名解析伺服器的位址;
- 最後,本地DNS伺服器向域名的解析伺服器送出請求,這時就能收到一個域名和IP位址的對應關系,本地DNS伺服器把IP位址傳回給使用者主機,并把這個對應關系儲存在緩存中。
3TCP連接配接
浏覽器拿到域名對應ip位址後,會以随機端口向WEB伺服器程式80端口發起TCP的連接配接請求,發起三次握手,建立連接配接。
三次握手建立連接配接另外總結
4浏覽器向WEB伺服器發起HTTP請求
建立TCP連接配接之後,發起HTTP請求,請求一般分為三部分:
請求行(方法 url 協定版本 CRLF)
請求頭(主機名,cookie等)
實體主體部分
5伺服器端處理
伺服器收到請求後,根據路徑參數映射到特定的請求處理器進行處理,并将處理結果及相應的視圖傳回給浏覽器;
6渲染頁面
浏覽器根據請求的得到的資源和資料渲染頁面,最終向使用者呈現一個完整的頁面。