Charles是Mac下一款截取網絡封包的工具,主要原理就是將本身設置成爲熊網絡訪問的代理服務器,這樣的話,全部的網絡請求都得經過它來完成,從而實現網絡封包的攔截分析。後端
這款軟件功能總體來講仍是很是強大的,例如支持SSL代理,流量控制(能夠模擬慢速網絡,比較經常使用),支持修改和重發網絡請求(這樣能夠方便服務器端去調試)等等很是實用的功能。具體可去官網(http://www.charlesproxy.com)瞭解,下面就簡單的說下經常使用的功能:瀏覽器
在使用以前必須把這玩意設置成爲系統的代理,具體方法以下:第一次啓動,Charles會請求你將它設置成爲系統代理,若是你手抖或者不認得英文單詞點了拒絕,那麼啓動後你也能夠經過菜單「Proxy」->"Mac OS X Proxy"來設置。服務器
設置好以後你再打開瀏覽器就能夠看到不少請求,主界面以下:網絡
由於全部的網絡封包都會被列出來,不少都是你不關注的,那麼你能夠經過上圖中 Filter 輸入框去篩選,也能夠經過工具
這種方式去添加你要截取的目標網站就行。網站
那麼怎麼去攔截iPhone上的網絡封包呢?代理
必須進行兩項設置,一個是Charles設置,按如下順序調試
一個是iPhone上的設置:設置-》無線局域網,選中當前鏈接的wifi,單擊右邊詳情,拉倒最底部,找到HTTP代理 這塊,選擇手動,而後輸入IP地址(在Mac的終端上輸入ifcongfig en0命令能夠查看,必須一致)和端口號8888,這時候再點擊OK後,你會看到Charles彈出一個連接確認的請求,記得選擇 「Allow」。好,到此就能夠攔截你手機上發出的網絡封包了。it
下面是模擬慢速網絡功能,很簡單,做以下設置就行:原理
而後還有,截取SSL信息功能,只須要在對應的請求上右擊,選擇SSL Proxying就能夠對相應的Host全部的SSL請求攔截;
修改網絡請求內容,也是右擊對應的請求,而後選擇edit進行編輯,完過後單擊「Execute」按鈕。
固然,還有個有用的功能就是修改服務器響應的內容(能夠本身模擬一下特殊數據,減輕後端哥們的壓力)這個相對來講有點複雜,它提供了Map(適合長期地將某一個請求重定向到另外一個網絡地址-Map Remote 或者本地文件-Map Local),Rewrite(適合對網絡請求進行一些正則替換),Breakpoints(適合一些臨時性德修改)三個功能,均可以完成修改服務器響應內容的目的,具體使用還要根據我的需求來。
首先是Map Remote
而後是Map Local
而後Rewrite ,匹配什麼,替換成什麼,相信聰明如你,一看就懂
下面是Breakpoint功能
開啓此功能後,對於指定的網絡請求,響應後都會被斷點攔截,此時你就能夠經過Edit Response去修改響應內容,而後單擊 Execute按鈕就行,其中須要注意的是客戶端響應超時哦。