總體分為以下幾個過程

  1. DNS解析
  2. TCP連線
  3. 傳送HTTP請求
  4. 伺服器處理請求並返回HTTP報文
  5. 瀏覽器解析渲染頁面
  6. 連線結束

DNS解析

域名到ip地址轉換

TCP連線

HTTP連線是基於TCP連線

https 協議就是http +ssl協議,ssl協議採用非對稱加密

傳送HTTP請求

http請求報文是由三部分組成:請求行,請求報頭和請求正文

請求行: 格式如下

Method Request-URL HTTP-Version CRLF

比如:

Method Request-URL HTTP-Version CRLF

請求報頭

常見的請求報頭有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等。

請求正文:

使用post,put方法請求,就會把請求資訊儲存在正文中,請求資料格式一般為json。這時就需要Content-Type: application/json

伺服器處理請求並返回HTTP報文

http響應報文也是由三部分組成:狀態碼、響應報頭和響應報文

狀態碼

  • 1xx:指示資訊–表示請求已接收,繼續處理。
  • 2xx:成功–表示請求已被成功接收、理解、接受
  • 3xx:重定向–要完成請求必須進行更進一步的操作。
  • 4xx:客戶端錯誤–請求有語法錯誤或請求無法實現。
  • 5xx:伺服器端錯誤–伺服器未能實現合法的請求。

    平時遇到比較常見的狀態碼有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500(分別表示什麼請自行查詢)。

響應報頭

伺服器返回給瀏覽器的文字資訊,通常html、css、js、圖片等檔案

瀏覽器解析渲染頁面

瀏覽器是一個邊解析邊渲染的過程。首先瀏覽器解析HTML檔案構建DOM樹,然後解析CSS檔案構建渲染樹,等到渲染樹構建完成後,瀏覽器開始佈局渲染樹並將其繪製到螢幕上。