Charles 使用教程
本文介紹 charles 教程 - 代理抓包的使用方法
本文參考了:阿西河Charles教程
Charles是一個(gè)HTTP代理/ HTTP監(jiān)視器/反向代理,使開(kāi)發(fā)人員能夠查看其機(jī)器和Internet之間的所有HTTP和SSL / HTTPS流量。這包括請(qǐng)求,響應(yīng)和HTTP標(biāo)頭(包含cookie和緩存信息)
Charles 是在 Mac 下常用的網(wǎng)絡(luò)封包截取工具,在做 移動(dòng)開(kāi)發(fā)時(shí),我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議,常常需要截取網(wǎng)絡(luò)封包來(lái)分析。
Charles 通過(guò)將自己設(shè)置成系統(tǒng)的網(wǎng)絡(luò)訪(fǎng)問(wèn)代理服務(wù)器,使得所有的網(wǎng)絡(luò)訪(fǎng)問(wèn)請(qǐng)求都通過(guò)它來(lái)完成,從而實(shí)現(xiàn)了網(wǎng)絡(luò)封包的截取和分析。
除了在做移動(dòng)開(kāi)發(fā)中調(diào)試端口外,Charles 也可以用于分析第三方應(yīng)用的通訊協(xié)議。配合 Charles 的 SSL 功能,Charles 還可以分析 Https 協(xié)議
如果您是您一次使用Charles
可能對(duì)下面的感興趣。
- Charles破解版免費(fèi)下載和安裝教程
- Charles手機(jī)抓包設(shè)置
- Charles的https抓包方法及原理/下載ssl/http證書(shū)
如果您已經(jīng)正在使用Charles
可能感興趣下面的工具
- Charles禁止緩存工具
- Charles禁用cookies工具
- Charles遠(yuǎn)程映射工具
- Charles本地映射工具
- Charles鏡像工具
- Charles重寫(xiě)工具
- Charles的black list 和 white list工具
- CharlesDNS欺騙工具
- Charles自動(dòng)儲(chǔ)存工具
- Charles客戶(hù)端進(jìn)程工具
- Charles撰寫(xiě)工具
- Charles重復(fù)發(fā)包工具
- Charles驗(yàn)證工具
- Charles Publish Gist 工具
如果您想了解頂部菜單欄
可以看下面的
- Charles View 視圖菜單介紹
- Charles的window和help菜單
- Charles的Edit菜單介紹
- Charles的proxy菜單介紹
Charles 相關(guān)
如果您有前端測(cè)試的需求,推薦 SwitchHosts這個(gè)小工具,當(dāng)然您如果對(duì)chrome瀏覽器的在線(xiàn)改host感興趣,也可以用下 Host Switch Plus
Charles和windows下的Fiddler都是同性質(zhì)的代理抓包工具;
Chrome DevTool 不能滿(mǎn)足所有調(diào)試
正常情況下,Chrome DevTool已經(jīng)滿(mǎn)足了日常web開(kāi)發(fā)的需求,但是有的特性:編輯request的參數(shù)、重定向request請(qǐng)求的資源、編輯response的數(shù)據(jù),ChromeDevTool就很蛋疼了,而且查看和調(diào)試移動(dòng)端資源時(shí)候Chrome也并不好用;
我常借用Charles做這些事情
- 抓取 Http 和 Https 的請(qǐng)求和響應(yīng),抓包是最常用的了。
- 重發(fā)網(wǎng)絡(luò)請(qǐng)求,方便后端調(diào)試,復(fù)雜和特殊情況下的一件重發(fā)還是非常爽的(捕獲的記錄,直接repeat就可以了,如果想修改還可以修改)。
- 修改網(wǎng)絡(luò)請(qǐng)求參數(shù)(客戶(hù)端向服務(wù)器發(fā)送的時(shí)候,可以修改后再轉(zhuǎn)發(fā)出去)。
- 網(wǎng)絡(luò)請(qǐng)求的截獲和動(dòng)態(tài)修改。
- 支持模擬慢速網(wǎng)絡(luò),主要是模仿手機(jī)上的2G/3G/4G的訪(fǎng)問(wèn)流程。
- 支持本地映射和遠(yuǎn)程映射,比如你可以把線(xiàn)上資源映射到本地某個(gè)文件夾下,這樣可以方面的處理一些特殊情況下的bug和線(xiàn)上調(diào)試(網(wǎng)絡(luò)的css,js等資源用的是本地代碼,這些你可以本地隨便修改,數(shù)據(jù)之類(lèi)的都是線(xiàn)上的環(huán)境,方面在線(xiàn)調(diào)試);
- 可以抓手機(jī)端訪(fǎng)問(wèn)的資源(如果是配置HOST的環(huán)境,手機(jī)可以借用host配置進(jìn)入測(cè)試環(huán)境)
charles相當(dāng)于一個(gè)插在服務(wù)器和客戶(hù)端之間的“過(guò)濾器”;
當(dāng)客戶(hù)端向服務(wù)器發(fā)起請(qǐng)求的時(shí)候,先到charles進(jìn)行過(guò)濾,然后charles在把最終的數(shù)據(jù)發(fā)送給服務(wù)器;
注意:此時(shí)charles發(fā)給服務(wù)器的數(shù)據(jù),不一定是客戶(hù)端請(qǐng)求的數(shù)據(jù);charles在接到客戶(hù)端的請(qǐng)求時(shí)可以自由的修改數(shù)據(jù),甚至可以直接Block客戶(hù)端發(fā)的請(qǐng)求;
服務(wù)器接收請(qǐng)求后的返回?cái)?shù)據(jù),也會(huì)先到charles,經(jīng)過(guò)charles過(guò)濾后再發(fā)給客戶(hù)端;
同理:客戶(hù)端接收的數(shù)據(jù),不一定就是服務(wù)器返回的數(shù)據(jù),而是charles給的數(shù)據(jù);
正因?yàn)樯厦娴脑?#xff0c;所以charles能實(shí)現(xiàn)的功能,對(duì)前端開(kāi)發(fā)者來(lái)說(shuō)非常有吸引力,相當(dāng)于請(qǐng)求和響應(yīng)都可控的,而且charles為了控制更加方面,提供很多簡(jiǎn)潔的操作;
注意Charles是收費(fèi)軟件,可以免費(fèi)試用30天的時(shí)間,推薦使用正版,研究學(xué)習(xí)可以看下 charles破解版免費(fèi)下載和安裝教程(我個(gè)人用的是charles4.1.2這個(gè)版本,現(xiàn)在用V4.2.28了);
注意問(wèn)題
如果想要抓包,第一件事情,就是把charles設(shè)置成為本機(jī)和服務(wù)端之間的”過(guò)濾器”;
讓所有的網(wǎng)絡(luò)請(qǐng)求全部經(jīng)過(guò)charles,這樣就可以捕獲并記錄到你請(qǐng)求的內(nèi)容和返回?cái)?shù)據(jù)了,原理請(qǐng)參照上面那張圖片;需要注意的是,如果你訪(fǎng)問(wèn)的是web,可以把所有請(qǐng)求抓到;
但如果你想抓某些應(yīng)用(比如手機(jī)上的應(yīng)用等),應(yīng)用使用的某些資源,如果沒(méi)有向服務(wù)器發(fā)送請(qǐng)求,而是通過(guò)調(diào)用內(nèi)部資源的方式進(jìn)行展現(xiàn),那么此時(shí)charles是抓不到的;驗(yàn)證這個(gè)的方式很簡(jiǎn)單,就是把網(wǎng)絡(luò)斷掉后,如果還可以繼續(xù)展現(xiàn),就是屬于調(diào)用內(nèi)部資源的,這種時(shí)候就不要想著通過(guò)抓包工具來(lái)捕獲資源了,他都沒(méi)有像服務(wù)器發(fā)起請(qǐng)求,手機(jī)點(diǎn)爛也抓不到的;
第一次啟動(dòng) Charles
啟動(dòng) Charles 后,第一次 Charles 會(huì)詢(xún)問(wèn)你是否把Charles設(shè)置為系統(tǒng)的代理,如果此時(shí)你忽略了這個(gè)詢(xún)問(wèn)敞口,你可以在后期設(shè)置的;將 Charles 設(shè)置成系統(tǒng)代理:選擇菜單中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 來(lái)將 Charles 設(shè)置成系統(tǒng)代理,參考如下,如果Mac下有管理密碼,需要輸入密碼后方可進(jìn)行;
本文參考:https://www.axihe.com/
總結(jié)
以上是生活随笔為你收集整理的Charles 使用教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [vue] vue项目有使用过npm r
- 下一篇: 工作380-js判断是否为空