在抓蝦上看到一篇Web開發分析工具的文章(鏈接就免了),怎麼遠沒有我用的東西好用呢?還是介紹介紹我用的吧。由於平常開發只用FireFox,完成後再去調試IE,所以這些工具絕大部分是針對FireFox的。
如果把Web通信從上到下分爲許多層——XMLHttpRequest層,HTTP層,TCP層,那麼這些工具可以分別抓取每個層的通信數據進行分析,結合使用極其強大。
2008/12/31:另外可以參考daniel同學的Web開發常用工具一文,相信會大有幫助哦。
XMLHttpRequest層:Firebug
適用範圍 | Ajax應用程序 |
優點 | 使用方便,數據截取完整 |
缺點 | 只能分析XMLHttpRequest請求,其他類型的請求無能爲力 |
Firebug應該是盡人皆知了。它的控制檯能監視XMLHttpRequest請求,能看到完整的請求和應答的數據。用它來調試Ajax程序是最好不過了。
HTTP層:Tamper Data
適用範圍 | 普通網頁,Ajax應用程序,Flash |
優點 | 使用方便,適用範圍廣,任何HTTP請求都能截獲 |
缺點 | 只能截獲請求頭、請求內容、應答頭,得不到應答內容;涉及文件下載時效率大幅度降低 |
Tamper Data比Firebug進了一步,只要是HTTP請求,它都能抓下來,可惜的是看不到應答內容。適用於分析請求流程、請求參數、請求數據、重定向URL。對於非Ajax程序如普通網頁、Flash、ActiveX等程序,用Tamper Data來分析十分方便。
HTTP層:burpsuite
適用範圍 | 普通網頁,Ajax應用程序,Flash |
優點 | 適用範圍廣,截取數據完整,不挑網卡 |
缺點 | 使用稍稍麻煩 |
burpsuite中的proxy功能用於分析Web通信十分好用。它的原理是架設一個代理服務器,讓瀏覽器通過代理來發送請求,代理就可以截獲數據了。
使用方法爲:
- 配置proxy,然後設置瀏覽器使用它的proxy
- 訪問想要抓取的那個網頁
- burp suite的proxy中就會看到請求內容,在這裏即可詳細地分析請求。
- 如果想繼續分析應答,可以右鍵點擊請求內容,選send to repeater
- 切換到repeater標籤,點【go】按鈕發送請求,在下方就可以看到應答
TCP層:wireshark
適用範圍 | 任何網絡程序 |
優點 | 適用範圍廣,截取數據完整 |
缺點 | 使用麻煩;不能使用loopback網卡 |
如果以上方法都不管用,就要祭出終極武器wireshark(原名ethereal)了。它從網絡的最底層入手,可以截獲任何類型的網絡通信,而不僅僅是HTTP協議。比如要開發一個郵件程序,需要分析服務器端腳本與POP3服務器之間的通信,那就非得wireshark出馬不可了。
使用方法:
- 在wireshark中選擇抓取物理網卡;
- 讓應用程序發請求;
- 在wireshark中停止抓取;
- 從抓到的包一覽中找出剛纔應用程序發出的請求,右鍵點擊選擇 Follow TCP Stream,就能看到該請求的完整內容。
這個工具的不足之處是它不能抓取loopback的網卡,也就是說,如果你的程序連接的是位於localhost或127.0.0.1的服務器,那wireshark是抓不到的。解決方法是,讓程序通過真實物理網卡去連別的機器,或是使用虛擬機的虛擬網卡也行。