Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器.它容許一個開發者查看全部鏈接互聯網的HTTP通訊.這些包括request,response現HTTP headers (包含cookies與caching信息)。java
Charles是一個簡單的基於HTTP協議傳輸的調試工具,在開發和測試工做扮演着重要的角色。瀏覽器
Charles具備界面簡單直觀,易於上手,數據請求控制容易,修改簡單,抓取數據的開始暫停方便等優點。 服務器
注意:該軟件在特殊狀況下會出現劫持瀏覽器致使沒法瀏覽網頁的問題(請謹慎使用)。微信
l 首先須要下載java的運行環境支持。cookie
l http://www.charlesproxy.com下載charles或者去百度搜索並下載charles的破解版數據結構
charles抓包的顯示,支持兩種模式,Structure和Sequence,其優勢分別以下。socket
Structure模式以下圖 優勢:能夠很清晰的看到請求的數據結構,並且是以域名劃分請求信息的,能夠很清晰的去分析和處理數據。ide
Sequence模式以下圖 優勢:能夠很清晰的看到所有請求,不用一層一層的去點開,這裏是以數據請求的順序去執行的,也就是說那個請求快就在前面顯示。工具
pc端可使用Charles抓取http、https協議的請求,不支持socket。charles會自動配置IE瀏覽器和工具的代理設置,因此說打開工具直接就已是抓包狀態了。這裏打開百度抓包下,工具界面和相關基礎功能以下圖所示:測試
上圖中的7個位置是最經常使用的幾個功能。
1. 那個垃圾桶圖標,功能是clear,清理掉全部請求顯示信息。
2. 那個望遠鏡圖標,功能是搜索關鍵字,也可使用ctrl+f實現,能夠設置搜索的範圍。
3. 圓圈中間紅點的圖標,功能是領抓去的數據顯示或者不顯示的設置。這個是charles工具很方便的一個兩點,通常都使其爲不顯示抓去狀態,只有當本身測試的時候的先後,在令其爲抓取並顯示狀態。這樣能夠快準狠的獲取到相關本身想要的信息,而沒必要在一堆數據請求中去尋找。
4. 編輯修改功能,能夠編輯修改任意請求信息,修改完畢後點擊Execute就能夠發送一個修改後的請求數據包。
5. 抓取的數據包的請求地址的url信息顯示。
6. 抓取的數據包的請求內容的信息顯示。
7. 相應數據內容信息的顯示
其中5、六、7中都有各類形式的數據顯示形式,其中raw是原始數據包的狀態。
選擇請求後,右鍵能夠看到一些經常使用的功能,這裏說說Repeat 就是重複發包一次。而後Advanced Repeat就是重複發包屢次,這個功能用來測試短信轟炸漏洞很方便。
打開Proxy –> Proxy Settings
l 指定錄製
l 排除錄製
Charles是一款很好用的抓包修改工具,可是若是你不是很熟悉這個工具的話,確定會遇到各類感受很莫名其妙的情況,常見問題說明以下。
1. 爲何下載了不能用?打不開啊。
由於charles是須要java環境才能運行的,須要先安裝java環境才能夠。
2. 爲何我用着用着就自動關閉了?大概30分鐘就會關閉一次。
由於charles若是沒有註冊的話,每次打開後就只能喲個30分鐘,而後就會自動關閉,因此最好在使用前先按照說明去進行工具的註冊操做。
3. 爲何我用charles不能抓到socket和https的數據呢?
charles是不支持抓去socket數據的。若是抓不到https的數據的話,請查看你是否是沒有勾選ssl功能。Proxy –> Proxy Settings –> SSL 設置
4. 抓包後發現form中有些數據顯示是亂碼怎麼辦?
請在Raw模式下查看,Raw模式顯示的是原始數據包,通常不會由於編碼問題致使顯示爲亂碼。
5. 爲何我用IE能夠抓到數據,可是用360或者谷歌瀏覽器就不行?
請確保360或者谷歌的代碼設置中是否是勾選設置的是 使用IE代理。
6. 想要複製粘貼某些數據的話,怎麼辦,右鍵沒有相應功能啊?
請直接使用Ctrl +C 和Ctrl+V 便可。
7. 爲何用了charles後,我就上不了網頁了,可是qq能夠。
由於若是charles是非正常狀態下關閉的話,那麼IE的代理就不會被自動取消,因此會致使這種狀況。
解決辦法:
第一種:直接打開charles,而後再正常關閉便可。 第二種:去將IE瀏覽器代理位置的勾選去掉。