可以分為這幾個大的過程:
- DNS解析
- TCP連接
- 客戶端發送HTTP請求
- 服務器處理請求並返回HTTP報文
- 瀏覽器解析渲染頁面
- 結束
其中(1)DNS解析可以理解為主尋找這個IP地址的過程,其中如果找到IP地址會進行本地緩存,以便下次繼續使用
(2)HTTP協議是使用TCP作為其傳輸層協議的
(3)HTTP請求報文是由三部分組成: 請求行, 請求報頭和請求正文。
例如請求行:GET index.html HTTP/1.1,常見的請求報頭有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等,請求正文一般是一些需要客戶端向服務端發送的數據
(4)HTTP響應報文也是由三部分組成: 狀態碼, 響應報頭和響應報文。
狀態碼是由3位數組成,第一個數字定義了響應的類別,且有五種可能取值:
-
1xx:指示信息–表示請求已接收,繼續處理。
-
2xx:成功–表示請求已被成功接收、理解、接受。
-
3xx:重定向–要完成請求必須進行更進一步的操作。
-
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現。
-
5xx:服務器端錯誤–服務器未能實現合法的請求。
平時遇到比較常見的狀態碼有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500(分別表示什么請自行查找)。
響應報頭:常見的響應報頭字段有: Server, Connection...。
響應報文:服務器返回給瀏覽器的文本信息,通常HTML, CSS, JS, 圖片等文件就放在這一部分。
(5)瀏覽器一邊解析一邊渲染
(6)結束
詳情可以參考完整文章:https://segmentfault.com/a/1190000006879700