天天看點

用戶端浏覽器向伺服器發起http請求的全過程

(1)浏覽器先搜尋自身的DNS緩存

(2)作業系統搜尋自身的DNS緩存(浏覽器沒有找到緩存或者緩存已經失效)

(3)讀取本地的HOST檔案

(4)浏覽器發起一個DNS的一個系統調用

         寬帶營運商伺服器檢視本身緩存

         檢視本身緩存,沒有?--->營運商伺服器發起一個疊代DNS解析的請求

營運商伺服器向根域伺服器發起請求xxx.com的ip位址是多少?根域回複:我不知道,但我知道com域頂級域名的ip位址,你問它;

營運商伺服器向com域頂級域名伺服器請求xxx.com的ip位址是多少?com域伺服器回複:我不知道,但我知道xxx.com這個域的ip位址;

營運商伺服器xxx.com這個域伺服器(域名的注冊商提供的)發起請求xxx.com的ip位址是多少?xxx.com這個域伺服器:結果發送給營運商DNS伺服器,

營運商DNS伺服器拿到了ip位址,傳回給作業系統核心,再傳回給浏覽器;

         營運商伺服器把結果傳回作業系統核心同時緩存起來

         作業系統核心把結果傳回浏覽器

         浏覽器就拿到了www.imooc.com的IP位址

(5)浏覽器獲得域名對應的IP位址後,發起HTTP“三次握手”

(6)TCP/IP連結建立起來後,浏覽器就可以向伺服器發送HTTP請求了

(7)伺服器端接受到了這個請求,根據路徑參數,經過後端的一些處理之後,把處理後的結果資料傳回給浏覽器,比如頁面完整的html代碼等傳回給浏覽器

(8)浏覽器拿到了完整的html代碼後,在解析和渲染這個頁面的時候,裡面的JS,CSS,圖檔靜态資源,他們同樣也是一個個http請求,都要經過上面的主要七個步驟。

繼續閱讀