1.請求報文
請求報文是由請求方法、請求 URI、協議版本、可選的請求首部字段和內容實體構成的。
2.響應報文
響應報文基本上由協議版本、狀態碼(表示請求成功或失敗的數字代碼)、用以解釋狀態碼的原因短語、可選的響應首部字段以及實體主體構成。
常見的狀態碼:
200 OK
301 Moved Permanently(表示請求的資源已被分配了新的 URI,以後應使用資源現在所指的 URI),常見的是url最後少個‘/’
302 臨時移動(臨時性重定向。該狀態碼錶示請求的資源已被分配了新的 URI,希望用戶(本次)能使用新的 URI 訪問)
400 錯誤請求(表示請求報文中存在語法錯誤,但瀏覽器會像 200 OK 一樣對待該狀態碼)
401 未授權(表示發送的請求需要有通過 HTTP 認證(BASIC 認證、DIGEST 認證)的認證信息)
403 禁止(表明對請求資源的訪問被服務器拒絕了)
404 未找到(表明服務器上無法找到請求的資源)
500 服務器內部錯誤(表明服務器端在執行請求時發生了錯誤)
502 錯誤網關 作爲網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
3.TCP三次握手
(1)建立連接。客戶端發送連接請求報文段,客戶端進入SN_SEND狀態,等待服務器的確認;
(2)服務器收到SYN報文段。服務器將SYN+ACK報文段發送給客戶端,此時服務器進入SYN_RECV狀態;
(3)客戶端收到服務器的SYN+ACK報文段。向服務器發送ACK報文,這個報文段發送完畢以後,客戶端和服務器端完成TCP 三次握手;
4.TCP四次揮手
(1)第一次揮手:主機1(可以是客戶端也可以是服務器端)向主機2發送一個FIN報文段,表示主機1沒有數據要發送給主機2 了;
(2)第二次揮手:主機2收到了主機1發送的FIN報文段,向主機1 回一個ACK報文段,主機2告訴主機1,我“同意”你的關閉請 求;
(3)第三次揮手:主機2向主機1發送FIN報文段,請求關閉連接,同時主機2進入LAST_ACK狀態;
(4)第四次揮手:主機1收到主機2發送的FIN報文段,向主機2發送ACK報文段,主機2收到主機1的ACK報文段關閉連接,此 時主機1等待了2MSL後沒有收到回覆,則證明Server端已正常關閉,主機1也關閉連接了;