2. http應用原理--瀏覽器輸入一個網址後的工做流程簡述

當咱們在瀏覽器中輸入 http://www.baidu.com/ 按下回車的時候,瀏覽器作了哪些事情,大概的流程以下:
1.域名到IP地址的轉換,瀏覽器依次查找:
(1)搜索瀏覽器自身的DNS緩存
(2)搜索操做系統自身的緩存
(3)查找硬盤中hosts文件中是否有DNS和IP地址的映射
(4)向域名服務器發起DNS請求(複雜的過程)
而後瀏覽器得到了IP地址。
2.TCP鏈接(三次握手)

發三次包,TCP報文格式如上,主要關注幾個 字段
(1) 序號:Seq序號,32位,用來標識從TCP源端向目的端發送的字節流,發起方發送數據時對此進行標記。
(2) 確認序號:Ack序號,32位,只有ACK標誌位爲1時,確認序號字段纔有效,Ack=Seq+1。
(3) 標誌位:共6個,即URG、ACK、PSH、RST、SYN、FIN等,含義以下:
         ACK:確認序號有效。
         SYN:發起一個新鏈接。
         FIN: 釋放一個鏈接。
3.發起HTTP請求
請求消息包括:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。
4.HTTP響應
HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行和響應正文。
服務器接受到這個請求後,根據路徑參數,通過後臺一些處理以後,把處理後的結果返回給瀏覽器,好比是百度首頁,就能夠把完整的 HTML 頁面代碼返回給瀏覽器。
5.瀏覽器解析呈現HTML內容
瀏覽器拿到了百度首頁的完整 HTML 頁面代碼,內核和 JS 引擎就會解析和渲染這個頁面,裏面的 JS,CSS,圖片等靜態資源也經過一個個 HTTP 請求進行加載。而後瀏覽器根據拿到的資源對頁面進行渲染,最終把完整的頁面呈現給用戶。
6.TCP 斷開(即四次揮手)
若是瀏覽器沒有後續的請求,那麼就會跟服務器端發起 tcp斷開。
相關文章
相關標籤/搜索