“記錄HTTP請求報文(請求行、請求頭、請求體)及響應報文(狀態碼、響應頭、響應體)”
請求行
e.g.
主要包含:請求方法、請求URL、HTTP協議及版本
請求頭
e.g.
詳解:
- Accept:告訴服務器當前瀏覽器能接受和處理的介質類型,*/*表示可接受所有類型。
- Accept-Encoding:告訴服務器當前瀏覽器支持的內容編碼。
- Accept-Language:告訴服務器當前瀏覽器能接受和處理的語言。上述請求中的zh-CN,zh;q=0.8表示用戶對zh-CN的喜好程度為80%。
- Connection:keep-alive,告訴服務器在完成本次請求的響應后,保持該TCP連接不釋放,等待本次連接的后續請求。這樣可以減少打開關閉TCP連接的次數提升處理性能。另外的可選項是Close,表明直接響應接受完成后直接將其關閉。
- Content-Length:用於描述HTTP消息實體的傳輸長度。
- Content-Type:內容類型,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件。
常見的媒體格式類型如下:
text/html : HTML格式
text/plain :純文本格式
text/xml : XML格式
image/gif :gif圖片格式
image/jpeg :jpg圖片格式
image/png:png圖片格式
以application開頭的媒體格式類型:
application/xhtml+xml :XHTML格式
application/xml: XML數據格式
application/atom+xml :Atom XML聚合格式
application/json: JSON數據格式
application/pdf:pdf格式
application/msword : Word文檔格式
application/octet-stream : 二進制流數據(如常見的文件下載)
application/x-www-form-urlencoded : <form encType=””>中默認的encType,form表單數據被編碼為key/value格式發送到服務器(表單默認的提交數據的格式)
另外一種常見的媒體格式是上傳文件之時使用的:
multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式
- Cookie:表示服務器端為本次訪問分配了一個Session ID,每次發送請求時都會主動將該Session ID通過Cookie字段又發送回服務器,用於驗證身份和保持狀態。
- Host:描述請求將被發送的目的地,在任何類型的請求中都會包含此信息。
- Origin:用來說明請求從哪里發起的。
- Referer:指定發起該請求的源地址。根據該值服務器可以追蹤到來訪者的基本信息。比如我們在百度首頁搜索博客園關鍵字,並從搜索結果中訪問,那么博客園網站服務器就可以根據Referer值追蹤到來訪者地址為:https://www.baidu.com/link?url…7c64da001b54df000000065e06ec91 這樣就可以知道來訪者是從哪個網站訪問到此。如果來訪者的Referer為空,有兩種可能,一種是來訪者修改了請求,刪除了Referer字段的值,另一種就是來訪者是直接在URL地址欄輸入地址訪問該網站。
- TE:采用何種傳輸編碼。
- User-Agent:是一種向訪問網站提供你所使用的瀏覽器類型及版本、操作系統及版本、瀏覽器內核等信息的標識。
- X-Requested-With:用來判斷請求是Ajax請求還是其他請求。
請求體
- POST請求通過請求體來傳遞數據,通過param1=value1¶m2=value2的鍵值對形式編碼。
- GET請求通過URL地址參數來傳遞數據,也就是我們平時看到的URL地址里面“?”后面的所包含的鍵值對。
狀態碼
1XX:參考信息
2XX:狀態成功
3XX:用於重定向
4XX:客戶端錯誤
5XX:服務器端錯誤
響應頭
e.g.
- content-encoding:響應的編碼格式
- content-type:響應內容的類型
- date:響應的時間。此處使用的是GMT標准時間
- server:處理請求的源頭服務器所用到的軟件相關信息
- strict-transport-security:
HTTP Strict Transport Security(通常簡稱為HSTS)是一個安全功能,它告訴瀏覽器只能通過HTTPS訪問當前資源, 禁止HTTP方式。
上述響應中的max-age=2592000表示在接下來的30天(即2592000秒)中,瀏覽器發送請求時,必須采用HTTPS來發起連接。如果用戶點擊超鏈接或在地址欄輸入 'http://www.example.com/',瀏覽器應當自動將 http 轉寫成 https,然后直接向 'https://www.example.com/' 發送請求。
- vary:告知下游的代理服務器,應當如何對以后的請求協議頭進行匹配,以決定是否可使用已緩存的響應內容而不是重新從原服務器請求新的內容。
響應體
響應體就是服務器返回的HTML頁面或者json數據