本文介紹 charles 教程 - 代理抓包的使用方法css
本文參考了:阿西河 Charles 教程html
Charles前端
Charles是一個HTTP代理/ HTTP監視器/反向代理,使開發人員可以查看其機器和Internet之間的全部HTTP和SSL / HTTPS流量。這包括請求,響應和HTTP標頭(包含cookie和緩存信息)web
Charles 是在 Mac 下經常使用的網絡封包截取工具,在作 移動開發時,咱們爲了調試與服務器端的網絡通信協議,經常須要截取網絡封包來分析。chrome
Charles 經過將本身設置成系統的網絡訪問代理服務器,使得全部的網絡訪問請求都經過它來完成,從而實現了網絡封包的截取和分析。windows
除了在作移動開發中調試端口外,Charles 也能夠用於分析第三方應用的通信協議。配合 Charles 的 SSL 功能,Charles 還能夠分析 Https 協議後端
可能對下面的感興趣。瀏覽器
可能感興趣下面的工具緩存
能夠看下面的服務器
若是您有前端測試的需求,推薦 SwitchHosts 這個小工具,固然您若是對 chrome 瀏覽器的在線改 host 感興趣,也能夠用下 Host Switch Plus
Charles 和 windows 下的 Fiddler 都是同性質的代理抓包工具;
正常狀況下,Chrome DevTool 已經知足了平常 web 開發的需求,可是有的特性:編輯 request 的參數、重定向 request 請求的資源、編輯 response 的數據,ChromeDevTool 就很蛋疼了,並且查看和調試移動端資源時候 Chrome 也並很差用;
當客戶端向服務器發起請求的時候,先到charles進行過濾,而後charles在把最終的數據發送給服務器;
注意:此時charles發給服務器的數據,不必定是客戶端請求的數據;charles在接到客戶端的請求時能夠自由的修改數據,甚至能夠直接Block客戶端發的請求;
服務器接收請求後的返回數據,也會先到charles,通過charles過濾後再發給客戶端;
同理:客戶端接收的數據,不必定就是服務器返回的數據,而是charles給的數據;
正由於上面的原理,因此charles能實現的功能,對前端開發者來講很是有吸引力,至關於請求和響應均可控的,並且charles爲了控制更加方面,提供不少簡潔的操做;
注意Charles是收費軟件,能夠免費試用30天的時間,推薦使用正版,研究學習能夠看下 charles破解版免費下載和安裝教程(我我的用的是charles4.1.2這個版本,如今用V4.2.28了);
若是想要抓包,第一件事情,就是把charles設置成爲本機和服務端之間的」過濾器」;
讓全部的網絡請求所有通過charles,這樣就能夠捕獲並記錄到你請求的內容和返回數據了,原理請參照上面那張圖片;須要注意的是,若是你訪問的是web,能夠把全部請求抓到;
但若是你想抓某些應用(好比手機上的應用等),應用使用的某些資源,若是沒有向服務器發送請求,而是經過調用內部資源的方式進行展示,那麼此時charles是抓不到的;驗證這個的方式很簡單,就是把網絡斷掉後,若是還能夠繼續展示,就是屬於調用內部資源的,這種時候就不要想着經過抓包工具來捕獲資源了,他都沒有像服務器發起請求,手機點爛也抓不到的;
啓動 Charles 後,第一次 Charles 會詢問你是否把Charles設置爲系統的代理,若是此時你忽略了這個詢問敞口,你能夠在後期設置的;將 Charles 設置成系統代理:選擇菜單中的 「Proxy」 -> 「Mac OS X Proxy/windows proxy」 來將 Charles 設置成系統代理,參考以下,若是Mac下有管理密碼,須要輸入密碼後方可進行;
本文參考:阿西河前端教程