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