成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于iOS的Charles抓包實踐

開發 開發工具 前端
在應用開發過程中,通過抓包調試服務端接口的場景時常出現。Charles和Wireshark是開發過程中最常用的兩款軟件。那么今天,讓我們以iOS為例,聊一聊Charles抓包。

在日常開發中,我們無法看到應用程序與服務器之間發送和接收的內容,沒有這種可見性,我們在確定故障的確切位置時會非常困難且耗時。而Charles是一個運行在PC上的Web代理,我們將應用程序配置為通過Charles訪問網絡,便可以在Charles上記錄并顯示發送和接收的所有數據,進而可以大大提高調試程序的效率。

從下圖可以看出Charles的角色:

Charles的角色

Charles有以下幾個常用功能:

  • 請求預覽:通過分組或序列視圖預覽和過濾請求數據;
  • 請求抓包:抓取HTTP和HTTPS的請求數據和響應數據;
  • 請求斷點:攔截指定的請求或響應,預覽中間的數據;
  • 數據修改:修改請求數據和響應數據以配合數據測試;
  • 請求重發:指定請求重復發送,以測試后端功能和性能;
  • 網速模擬:設置網速延遲,模擬手機上2G/3G/4G網絡;

由于Charles的功能很多,很難在文章中詳盡介紹,所以作者以在項目中對Charles的使用為切入點,對最常用、最有用的幾個功能進行介紹。

一、安裝Charles

Charles是收費軟件,有30天的免費試用期限,

之后每使用30分鐘會被強退一次,重啟后可繼續使用。

從Charles官網可以獲取Charles安裝包。

二、請求預覽

Charles啟動后,就運行在抓包模式。由于Charles會自動配置PC瀏覽器的代理,所以,隨意打開一個網頁(只要有網絡請求即可)即可預覽到請求信息。

PS:如果使用插件為瀏覽器設置了獨立代理,請關閉插件或者設置成系統代理。

Charles提供了Structure和Sequence兩種預覽模式。

Structure以域名對請求進行分組,可以很方便地預覽同一域名下的請求數據,也方便于日常開發中對某一服務接口的分析和處理。圖示如下:

Sequence以時間順序顯示請求信息,可以最直接的預覽請求信息。在此模式下,可以使用Filter過濾請求,針對性分析。圖示如下:

在兩種模式下,都可以通過切換標簽(Overview、Request、Response等)預覽不同類型的請求信息。在最常用的Request和Response標簽下,還可以通過切換子標簽(Headers、Cookies、Text等)預覽對應標簽詳細內容。圖示如下:

基于iOS的Charles抓包實踐

三、請求抓包

使用工具欄的白圓紅點按鈕(快捷鍵是“Command+R”)可以使Charles在抓包(Start Recording)和不抓包(Stop Recording)之間切換。使用此按鈕,在需要調試時再打開抓包功能可以有效減少干擾信息,而快速抓取到需要調試的請求。

對從手機(以iPhone示例)發出的請求進行抓包,需要保證iPhone和PC工作在同一局域網內。

第1步:獲取PC的IP地址

在Charles菜單欄 -> Help -> Local IP Address中可以查看PC的IP地址。圖示如下:

基于iOS的Charles抓包實踐

也可以在Mac終端使用命令ifconfig en1查看PC的IP地址。圖示如下:

基于iOS的Charles抓包實踐

第2步:配置iPhone代理

在iPhone的 設置 -> 無線局域網 -> 局域網信息(i) -> 配置代理 -> 手動中配置代理,服務器輸入框中填寫PC的IP地址,端口輸入框中填寫Charles的代理端口(一般是8888)。圖示如下:

基于iOS的Charles抓包實踐

具體的端口可以從Charles菜單欄 -> Proxy -> Proxy Settings中查看。圖示如下:

基于iOS的Charles抓包實踐

iPhone代理配置完成后,Charles會彈出連接提示框,點擊Allow之后即可使用Charles對從該iPhone發出的請求進行抓包了。圖示如下:

第3步:抓包HTTPS請求

在配置iPhone代理完畢后,就可以通過Structure或者Sequence窗口預覽HTTP請求的數據了。但由于HTTPS請求被加密過,預覽請求時只能預覽到亂碼數據。要預覽到HTTPS請求的數據明文,需要PC和iPhone安裝證書授權。

(1) PC安裝證書

在Charles菜單欄 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以為PC安裝證書,證書可以在Mac的鑰匙串中查看。圖示如下:

證書可以在Mac的鑰匙串中查看,雙擊證書,將信任權限設定為始終信任。圖示如下:

(2) iPhone安裝證書

在iPhone瀏覽器中訪問 http://charlesproxy.com/getssl 可以下載證書并安裝。此地址一般不會變化,可以在Charles 菜單欄 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看***的官方證書下載地址。圖示如下:

基于iOS的證書信任機制,在安裝完成并信任證書后,需要到iPhone設置 -> 關于本機 -> 證書信任設置 中啟用根證書。圖示如下:

這樣,就可以使用Charles中抓包iPhone發出的HTTPS請求并預覽明文數據了。

抓包模擬器上的HTTPS請求需要點擊Install Charles Root Certificate in iOS Simulators安裝證書。

(3) 啟動抓包SSL權限

在Charles菜單欄 -> Proxy -> SSL Proxying Settings中勾選Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。圖示如下:

 

也可以在抓包界面,右鍵點擊某條/組請求,在彈出的選項列表中點擊Enable SSL Proxying啟用權限。圖示如下:

四、請求斷點

在Charles的請求預覽界面中,右鍵點擊某條/組請求,在彈出的選項列表中有Breakpoints選項。圖示如下:

點擊Breakpoints后即為該請求設定了斷點。默認情況下,在該請求的Request / Response過程都會受斷點控制,即在Request數據發送到的服務端之前會被暫停,在Response數據發送到客戶端之前也會被暫停。可以從Charles菜單欄 -> Proxy -> Breakpoint Settings中編輯斷點的參數。比如,只需要對Response過程加斷點,可以將Request的勾選狀態取消。圖示如下:

在斷點狀態下,可以預覽和修改請求的中間數據,之后點解Execute按鈕即可繼續執行請求。

五、數據修改

Rewrite和Breakpoint Editing都可以起到修改請求數據的作用。

1. Rewrite

在Charles菜單欄 -> Tools -> Rewrite中可以開啟Rewrite功能,點擊Add按鈕可以添加一條設置,并可以在右側的Locations和Rules中分別添加要Rewrite的請求路徑和Rewrite規則。圖示如下:

基于iOS的Charles抓包實踐

Rewrite適合應用于對請求的批量和長期修改,對請求數據影響較大(測試結束后經常忘記去掉規則)。所以,在一些輕量級的數據修改場景中,我經常結合Breakpoint功能修改數據。

2. Breakpoint Editing

結合斷點功能,可以很好的實現臨時修改請求的Request / Response數據的需求。為某條請求設置斷點后,當該請求發生時,會自動跳到斷點窗口。點開Edit Request / Response界面,可以看到中間信息,選擇合適的數據格式(HTML、Json等)進行修改。修改完成后,點擊Execute按鈕即可在終端上看到修改后的的效果。圖示如下:

基于iOS的Charles抓包實踐

六、請求重發

在Charles的請求預覽界面中,右鍵點擊某條/組請求,在彈出的選項列表中有Repeat和Advanced Repeat兩個選項。圖示如下:

單擊Repeat會重發該請求一次,常用于測試服務接口能否正常訪問,客戶端能否正常收到返回數據等。單擊Advanced Repeat會彈出重發參數編輯頁面,圖示如下:

基于iOS的Charles抓包實踐

在此編輯界面上,可以自定義Iterations(重發次數)、 Concurrency(并發數)和 Repeat(重發延時),常用于對服務接口進行壓力測試。

七、網速模擬

在Charles菜單欄 -> Proxy -> Throttle Settings中可以啟用Throttling(節流)功能,并自定義Locations(受限服務接口)和Throttle Configuration(節流配置)。支持對Throttle preset(預置的數據傳輸方式)、Bandwidth(帶寬) Utilisation(利用比率)、 Round-trip latency(往返延遲)、MTU(***傳輸單元) Reliability(可靠性) Stability(穩定性)等參數進行編輯。其中,在Throttle preset支持模擬3G/4G網絡環境。圖示如下:

基于iOS的Charles抓包實踐

使用Throttle功能,可以方便地排插因為若網而導致的bug,而這類bug在線上很容易出現,而且很難排查復現。

【本文是51CTO專欄機構360技術的原創文章,微信公眾號“360技術( id: qihoo_tech)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-03-26 04:47:28

iOSWireshark抓包

2015-07-08 13:03:49

2022-03-30 09:11:00

Python網絡爬蟲

2024-04-02 10:49:54

日志Charles工具

2022-02-12 20:45:49

AndroidPC 端工具

2022-02-23 11:47:57

CharlesFiddler抓包

2022-04-13 11:46:17

抓包wireshark丟包

2014-09-02 14:18:27

NodeJsLivePool

2010-09-29 13:44:19

DHCP工程抓包

2023-11-01 10:36:19

2020-10-13 16:02:03

HTTPS淺析與抓包分

2021-07-12 06:23:38

抓包gRpcRPC 框架

2019-05-13 14:17:06

抓包Web安全漏洞

2023-07-07 09:04:21

JSON信息微信

2015-07-17 10:25:43

kubernetesDocker集群系統

2022-08-08 07:05:36

KubeSphere分級管理

2022-06-01 09:18:37

抖音ReDex算法優化

2010-06-24 13:18:38

ICMP協議

2019-09-27 09:35:12

2021-02-21 16:21:19

JavaScript閉包前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区视频 | 久久精品一区二区三区四区 | 国产高清精品一区二区三区 | 91精品国产综合久久久久久丝袜 | 国产在线中文字幕 | 欧美福利视频 | av激情在线 | 日本国产高清 | 欧美一级大黄 | 亚洲国产一区视频 | 黄色播放| 精品日韩一区二区三区 | 日韩精品久久 | 综合五月婷 | 国产激情视频网站 | 国产91视频播放 | 一级在线观看 | 最新中文字幕第一页视频 | 日韩字幕 | 亚洲国产高清高潮精品美女 | 黄色激情毛片 | 久久国内精品 | 中文字幕福利视频 | 欧美在线天堂 | 亚洲欧美中文日韩在线v日本 | 黄色在线免费观看视频网站 | 九九久久久| 日日骚av | 久久精品色视频 | 日本成人中文字幕 | 精品在线看| 欧美精品在线免费观看 | 国产高清不卡 | 麻豆精品国产免费 | 中文字幕在线看 | 99一区二区| 久久欧美高清二区三区 | 欧洲精品在线观看 | 超碰97干| 欧美国产日韩一区二区三区 | 日韩在线看片 |