fiddle是一款優秀的數據包分析工具軟件,如果我沒有理解錯誤,應該是針對http協議。
fiddle的實現原理如右圖所示,其充當了client和server端的一個proxy。
當你啓動了Fiddler,程序將會把自己作爲一個微軟互聯網服務的系統代理中。你可以通過檢查代理設置對話框來驗證Fiddler是被正確地截取了web請求。操作是這樣的:點擊IE設置,工具,局域網設置,最後點擊高級。
作爲系統代理,所有的來自微軟互聯網服務(WinInet)的http請求再到達目標Web服務器的之前都會經過Fiddle,同樣的,所有的Http響應都會在返回客戶端之前流經Fiddler。這樣,就能明白Fiddler很多作用了吧!
注意:如果你採用libcurl等庫以tcp包方式實現http協議,可能無法直接用fiddle抓吧。因爲client的代理端口(tcp的client一般爲隨機端口,且fiddle的代理端口被佔用,tcp無法使用)不一致。
如果你是使用libcurl,可以補充一句
curl_easy_setopt(curl, CURLOPT_PROXY, "127.0.0.1:8888");
即可通過fiddle進行數據包分析。
其他方式實現的http協議請參考此方式解決。
下面會有一篇關於libcurl的博客。