請求消息數據格式
1、請求行
- 格式:
請求方式
請求url
請求協議/版本
- 實例:
GET /login.html HTTP/1.1
- 請求方式:HTTP協議存在7種請求方式,主要是
GET
和POST
- GET:請求參數在請求行當中,請求url長度有限制,不太安全
- 例如:
http://localhost/demo?username=cnjanus
- POST:請求參數在請求體當中,請求url長度無限制,相對安全
2、請求頭
Host: localhost
Connection: keep-alive
Content-Length: 16
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4023.0 Safari/537.36 Edg/81.0.396.0
Origin: http://localhost
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://localhost/login.html
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
- 常見的請求頭
User-Agent
:瀏覽器告訴服務器使用的瀏覽器版本信息(用來解決瀏覽器的兼容性問題)
Referer
:告訴服務器,當前的請求是從哪裏來的
Referer
作用:防止盜取鏈接,統計工作
Connection
:keep-alive表示可以複用
3、請求空行
4、請求體
- GET方式無請求體
- POST類型存在請求體:例如,username=cjd2018
響應消息數據格式
相應行
- 組成:
協議/版本
響應狀態碼
狀態碼的描述
- 實例:
HTTP/1.1
200
OK
響應狀態碼
- 狀態碼:都是三位數字,是服務器告訴客戶端瀏覽器本次請求和響應狀態的一個狀態
分類
- 1XX:服務器接收客戶端消息,但沒有接收完成,等待一段時間後,發送1XX的狀態碼
- 2XX:成功
- 3XX:重定向。例如,302(重定向),304(訪問緩存)
- 4XX:客戶端錯誤。例如,404(請求路徑沒有對應資源),405(請求方式沒有對應的doXxx方法)
- 5XX:服務器端錯誤。例如,500(服務器端出現異常,異常會展示在頁面上)
響應頭
重要的響應頭
- Content-Type:服務器告訴客戶端,本次響應體的數據格式以及編碼格式。例如,
content-type: text/html; charset=UTF-8
- Content-disposition:服務器告訴客戶端,以什麼格式打開響應體數據。(默認值是
in-line
,表示在當前頁面內打開;attachment
,表示以附件的形式打開響應體)
響應空行
響應體