使用Charles進行網絡抓包


一、安裝Charles

二、使用

1.http抓包

1.1 現在我們默認是在進行iOS開發,首先確保iPhone和Mac是在同一個局域網下(連同一個WiFi)。然后查看Mac的IP地址(打開網絡偏好設置即可看到),假設我的IP地址為:192.168.1.2. 然后進入iPhone,進行HTTP代理設置,從關閉改為手動,在服務器位置輸入剛才Mac的IP地址。在端口位置輸入8888.如圖:

1.2 然后就可以開始進行抓包了。打開Charles,會彈出是否允許,選擇Allow即可。然后在iPhone上打開你要抓包的App,在Charles上就會看到抓包結果:


2.https抓包

Https抓包配置比Http抓包配置麻煩一點點。首先把證書(在壓縮包中的crt文件)安裝到iPhone上(裝證書通過郵件的方式發送到iphone上的郵件應用中,點擊即可自動安裝)。安裝完成以后,其他配置都和http抓包一樣。額外的配置如下(我是最新的3.11版本,配置可能與其他網上3.x版本的配置稍有不同):

2.1 點擊Proxy-->SSL Proxying Settings ,就會出現如下界面:

勾選Enable SSL Proxying,然后點擊 Add 按鈕,按下圖格式進行配置(*號為通配符,表示可以對任意主機的任意端口的請求進行抓包,也可以指定某一主機和端口):

2.3 經過以上步驟,就可以進行Https抓包了。其他操作過程同http抓包。

注意:當你抓包結束后,就要去iPhone里把網絡的HTTP代理關閉,否則可能會造成無法上網的情況。

 

三、抓包結果詳解

3.1 http抓包結果

如果按照上面的過程配置好后,在手機上使用任意應用請求網絡后(注意一定要用真機才可以),就會得到http請求的抓包結果,如下圖:


左側是顯示結構:Structure是樹狀結構顯示,Sequence是水平結構顯示。兩者基本類似,我以樹狀結構來進行介紹。左側的樹狀結構是我進行網絡請求的url鏈接,每一個層級表示了以“/”隔開的子域名。通過上述的代碼也可以看到我GET請求的url鏈接是:http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=18888888888&userId= 

右側是詳情頁,其中第一個Overview是概覽。我對一些字段進行介紹:

(1)URL:我進行網絡請求的鏈接;

(2)Status:當前狀態,complete表示請求完成;

(3)Responce Code:返回碼。不同的接口,不同的請求結果,返回碼都不同;

(4)Protocol:使用的協議;

(5)Method:請求方式,如GET請求,POST請求等;

(6)Kept Alive:判斷當前是否正在鏈接(活躍);

(7)Content-Type:發送的內容類型,如這里用的是XML文本,以UTF8的方式發送;

(8)Client Address:客戶端的IP地址;

(9)Remote Address:遠程服務器的IP;

Timing:

(10)Request Start Time:請求開始的時間;

(11)Request End Time:請求結束的時間;

(12)Response Start Time:返回開始的時間;

(13)Response End Time:返回結束的時間;

Size:

(14)Request Header :請求的頭部大小;

(15)Request Header:返回的頭部大小;

(16)Request : 請求發送的大小;

(17)Response:返回數據的大小;

(18)Total:所有數據大小;

(19)Request Compression :請求壓縮;

(20)Response Compression: 返回壓縮;

 

第二個頁面"Request"是關於請求發送的。下面的Headers,Query String,Raw。

(1)Headers:發送請求的頭部信息;

(2)Query String:發送參數列表;

(3)Raw:發送的原生數據,包括了頭部和參數;

 

右側的"Response"的是關於所有返回信息的。

(1)Headers:是返回的頭部信息;

(2)Text:返回信息(除去頭部)后的文本;

(3)Hex:返回信息的16進制表示;

(4)XML:我返回的數據是XML。如果你返回的是JSON,這里就會顯示JSON;

(5)XML Text:如果你返回JSON,這里會顯示JSON Text;

(6)Raw:返回的所有原生數據,包括頭部;

 

"Summary"里面是發送數據的一些簡要信息。

"Chart"是一些簡要信息的圖表表示。

 

Charles頂部的一些常用的工具欄做一個介紹:

(1)New Session:新建一個會話。也就是在一個新的Charles界面查看網絡情況;

(2)Open Session:打開一個之前保存的會話;

(3)Close the current Session:關閉當前的會話;

(4)Save the current Session:保存當前的會話;

(5)Clear the current Session:清空當前的會話(比較方便,常用);

(6)Find Text in the current session:相當於查找功能;

 

3.2 https抓包結果

由於目前iOS9更改了對於https網絡的安全機制,所以還需要在iPhone上安裝一個證書,安裝方式如下:

在iPhone的Safari瀏覽器中直接輸入網址:http://www.charlesproxy.com/getssl 。進行安裝Custom Root證書.安裝完成之后可以進入設置-->通用-->描述文件,里面可以看到你所有安裝的證書。到目前為止,對於https抓包,至少已經安裝了兩個證書了,第一個也就是在前面安裝的。

現在打開iPhone的任意一個App,查看抓包結果:

其中http打頭的都是通過http抓包生成的;https打頭的則是通過https抓包生成的。如果你沒有配置好https抓包,那么https前面的是一把鎖,抓包成功的才是顯示藍色小球。

某一個https抓包結果如下:一些關於使用方式、參數的介紹同http抓包。

 

 

十分鍾學會抓包    http://www.jianshu.com/p/5539599c7a25

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM