HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

作為一名web開發或者測試人員,進行http抓包分析和http請求代理,是一項必備的技能,這樣才能更加準確的debug或者測試接口,今天小編給大家介紹下代理神器,Charles

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

首先簡單介紹一下

Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接收的所有數據。它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。

我常借用Charles做這些事情 :

抓取 Http 和 Https 的請求和響應,抓包是最常用的了。

重發網絡請求,方便後端調試,複雜和特殊情況下的一件重發還是非常爽的(捕獲的記錄,直接repeat就可以了,如果想修改還可以修改)。

修改網絡請求參數(客戶端向服務器發送的時候,可以修改後再轉發出去)。

網絡請求的截獲和動態修改。

支持模擬慢速網絡,主要是模仿手機上的2G/3G/4G的訪問流程。

支持本地映射和遠程映射,比如你可以把線上資源映射到本地某個文件夾下,這樣可以方面的處理一些特殊情況下的bug和線上調試(網絡的css,js等資源用的是本地代碼,這些你可以本地隨便修改,數據之類的都是線上的環境,方面在線調試);

可以抓手機端訪問的資源(如果是配置HOST的環境,手機可以借用host配置進入測試環境)

將 Charles 設置成系統代理

之前提到,Charles 是通過將自己設置成代理服務器來完成封包截取的,所以使用 Charles 的第一步是將其設置成系統的代理服務器。

啟動 Charles 後,第一次 Charles 會請求你給它設置系統代理的權限。你可以輸入登錄密碼授予 Charles 該權限。你也可以忽略該請求,然後在需要將 Charles 設置成系統代理時,選擇菜單中的 “Proxy” –> “Mac OS X Proxy” 來將 Charles 設置成系統代理。如下所示:

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

之後,你就可以看到源源不斷的網絡請求出現在 Charles 的界面中。

需要注意的是,Chrome 和 Firefox 瀏覽器默認並不使用系統的代理服務器設置,而 Charles 是通過將自己設置成代理服務器來完成封包截取的,所以在默認情況下無法截取 Chrome 和 Firefox 瀏覽器的網絡通訊內容。如果你需要截取的話,在 Chrome 中設置成使用系統的代理服務器設置即可,或者直接將代理服務器設置成 127.0.0.1:8888 也可達到相同效果。

移動端抓包

1)使用Charles工具查看PC本地IP和端口號(端口號默認為8888,也可自行修改),選擇“Help->Local IP Address”

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

查看默認端口號“Proxy->Proxy Settings”

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

2)長按Android設備當前連接的WiFi,選擇”Modify network”->”Advanced options”->“Proxy”->”Manual”,如下圖所示,輸入”Proxy hostname”和”Proxy port”(即上一步查看的IP地址和端口號)然後點擊保存,見下圖:

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

3)點擊保存後,Charles會彈出connection確認彈窗,選擇”Allow”,見下圖:

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

4)注意,如果首次連接時,Charles未出現該提示,請手動進入Charles的設置選項,添加當前手機的IP,選擇“Proxy->Access Control Settings”

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

點擊“Add”手動添加IP

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

證書安裝---

上述操作只是完成了代理配置的一半,想要Charles抓到包還需要在移動設備上安裝證書。

1)手機瀏覽器訪問鏈接
http://www.charlesproxy.com/getssl/(鏈接名字長,注意不要寫錯),也可以在Charles中查看下載證書的地址,見下圖紅框標註的位置

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

2)安裝動態證書(證書名稱隨意填寫即可),憑據用途默認即可,證書安裝時需要設置系統鎖,設置鎖屏成功後證書會提示證書安裝成功。到此,你的設備和Charles就建立了連接,可以嘗試在設備上訪問一個地址,在Charles左側視圖就能實時看到請求啦~但你會發現,有些請求為什麼會顯示成紅叉unknown呢?請接著往下看~

【注】此步操作不成功的請下滑頁面到底看【踩坑】部分。

HTTP(HTTPS)抓包,代理工具,程序員測試開發必會

當然charles是需要激活的,以後的文章,小編帶來如何激活哦,記得關注下!!


分享到:


相關文章: