額,這篇忘了是來自哪位作者的了。
whistle:1.14.6
這里以抓取瀏覽器數據包為例,分析抓取的數據。
Method:Connect,對應Host:Tunnel to意思是因為網絡環境受限,客戶端無法直接訪問某些網絡,所以只能通過代理服務器訪問網絡(客戶端使用http connect請求代理服務器,代理服務器使用connect方法與目標服務器建立http tunnel),然后將內容轉發給客戶端,從宏觀上看,客戶端與服務器端就像建立了一條隧道一樣。
GET:網址帶參數。
POST:回車操作,提交。
比較常用的是:
clear:清除所有數據包
record:記錄抓包結果
Filter:對抓取的數據包進行過濾。
Overview:關於HTTP請求性能和其他數據分析,比如DNS解析消耗時間、請求時間、響應時間。
Composer:可以構建響應的請求,也就是修改請求,查看頁面返回什么。
Inspectors:分為上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。
請求頭的內容如下:
Host:請求連接的主機名;
User-Agent:告訴服務器,我本地瀏覽器支持哪些內核瀏覽器
Accept:可接受的文件類型;
Accept-Language:可接受的返回數據的語言種類;
Accept-Encoding:可接受的純文本之外的內容編碼的類型;
Content-Type:內容數據的類型(Mini Type);
Content-Length:傳輸的內容長度;
Connection:指定該次請求回應結束后,如何處理連接;
Proxy-Connection:
Cache-Control:指定請求和響應遵循的緩存機制;
Pragma:防止頁面被緩存,Pargma只有一個用法, 例如: Pragma: no-cache
Location:用於重定向接收者到一個新URL地址;
響應頭的內容如下:
Accept-Ranges:
Cache-Control:指定請求和響應遵循的緩存機制;
Content-Type:內容數據的類型(Mini Type);
Date:表示發送HTTP消息的日期,即當前的GMT時間
Expires:內容數據被緩存的過期時間;
Last-Modified:服務器上保存內容的最后修訂時間;
Server:指明HTTP服務器的軟件信息;
Content-Length:傳輸的內容長度;
Content-Encoding:文檔的編碼方法,一般是壓縮方式
Transfer-Encoding:用來改變報文格式
Age:表示HTTP接受請求操作響應的緩存時間;
(Status-Line):包括HTTP請求的狀態碼和HTTP版本信息;
Connection:指定該次請求回應結束后,如何處理連接;
Content-Language:內容數據的語言種類;
請求方法有多種, 各個方法的解釋如下:
GET請求獲取Request-URI所標識的資源
POST在Request-URI所標識的資源后附加新的數據
HEAD請求獲取由Request-URI所標識的資源的響應消息報頭
PUT請求服務器存儲一個資源, 並用Request-URI作為其標識
DELETE請求服務器刪除Request-URI所標識的資源
TRACE請求服務器回送收到的請求信息,主要用於測試或診斷
CONNECT保留將來使用
OPTIONS請求查詢服務器的性能,或者查詢與資源相關的選項和需求
應用舉例:
GET方法在瀏覽器的地址欄中輸入網址的方式訪問網頁時, 瀏覽器采用GET方法向服務器獲取資源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法要求被請求服務器接受附在請求后面的數據, 常用於提交表單。
響應頭中的HTTP狀態碼對應信息:
狀態代碼與狀態描述:
1XX:指示信息——表示請求已經接受,繼續處理;
2XX:成功——表示請求已經被成功接收、理解、接受;
3XX:重定向——要完成請求必須進行更進一步的操作;
4XX:客戶端錯誤——請求有語法錯誤或請求無法實現;
5XX:服務器端錯誤——服務器未能實現合法的請求。
常用狀態碼以及狀態描述:
200:客戶端請求成功
400:Bad Request 客戶端請求有語法錯誤,不能被服務器所理解
401:Unauthorized 請求未經授權,這個狀態嗎必須和WWW-Authenticate報頭域一起使用
403:Forbidden 服務器收到請求,但是拒絕提供服務
404:Not Found 請求資源不存在,如輸入了錯誤的URL
500:Internal Server Error 服務器發生不可預期的錯誤
502:Server Unavailable 服務器當前不能處理客戶端的請求,一段時間后可能回復正常