網絡抓包,應該是大多數開發者必須掌握的技能之一。無論是你寫爬蟲、還是進行接口調試、Bug 分析,或多或少都會接觸到不少抓包工具。目前用的比較多的,應該就是 Fiddler、wireshark 和大名鼎鼎的 Charles 了。當然了,這些工具都有不少的優缺點,不過功能豐富,可滿足多方面網絡調試場景,也使得它們都不免俗的成為當前市面上比較主流的抓包工具。今天想給大家推薦一款,相對冷門,但界面卻非常優雅簡潔,擁有出色 UI 設計,功能靈活易用的抓包神器:Proxyman。作為 Mac 上一款較為知名的 HTTP/HTTPS 網絡調試工具,Proxyman 擁有多重請求過濾、SSL 代理、斷點調試、注釋添加等多種功能,並內置了腳本運行、請求變更記錄溯源等多款使用工具。諸多功能,令它在網絡調試領域,可謂無往不利,使起來也是頗為順手。下面就由我來跟大家簡單介紹下,它具體擁有哪些功能。多重條件過濾在進行接口調試時,可以藉助工具的篩選屬性,來縮小查詢範圍。通過結合多種過濾條件,如 URL、請求 Header、響應 Header、狀態碼、注釋等條件,精準定位查詢內容。不僅如此,你還可以保存篩選設置,以供日後使用,減少重複性功能。本地文件映射(Map Local File)見名知意,本地文件映射,就是讓你可以使用本地的 JSON 文件,映射到請求、響應接口上,包括狀態碼、Header、Body 等。從開發角度上,此舉無疑能增加調試效率,並且可以多方位的測試、覆蓋各種邊緣場景,無需等待服務器數據更新。斷點調試這一步,經常在數據抓包或者前端界面調試時需要用到,通過給網絡請求設置斷點,可在請求發布、響應送達的具體位置上進行攔截,並更改請求/響應數據(如 Header、URL、狀態碼等),而無需更改客戶端代碼。腳本工具作為一款比較高級的調試工具,你可以通過嵌入 JavaScript 代碼,來執行腳本,以便更靈活的檢查與修改接口數據。工具裡面提供了諸多代碼片段、常用插件以及 JavaScript 第三方庫供開發者使用,加快你的調試效率。請求高亮 & 注釋添加在進行項目多人協作時,給接口加上合理的注釋,能大幅降低他人的學習成本以及工作效率,後面項目有 Bug,也能很好的追蹤與定位。Diff 工具用過 GitHub 的同學應該都清楚,當我們需要合併他人提交的代碼時,可以用 Diff 工具,來快速查看代碼的增加、刪除情況。通過 Diff 工具,你可以清晰的看到,所選的不同請求/響應之間,URL、狀態碼、Header 等內容有哪些區別,更快發現錯誤所在。除此之外,像 JSON 格式化、會話保存、WebSocket 調試、網絡訪問速度限制、正則表達式匹配等功能,它也都一一具備,在此就不多介紹了,感興趣的同學,可以使用一下。文中所提到的所有開源項目與工具,已收錄至 GitHubDaily 的開源項目列表中,有需要的,可訪問下方 GitHub 地址或點擊「閱讀原文」查看:GitHub:https://github.com/GitHubDaily/GitHubDaily
好了,今天的分享到此結束,感謝大家抽空閱讀,我們下期再見,Respect!