背景
在 Windows 平臺上,Fiddler 作為一款非常便捷好用的 Web 除錯工具,深受廣大開發者的喜愛。而在 Mac 上,類似的工具,比如 Charles 等,收費並且功能非常有限,著實讓很多陸續把工作環境遷移到 Mac 的小夥伴剛到非常的不方便。難道真的要在 Mac 上裝個 Windows 或者開虛擬機器跑 Fiddler 嗎?
Alloyteam 其實很早就開始實踐跨平臺的抓包和替換工具,基於 QT 的 Rythem,功能上基本能滿足要求,但是由於後續沒有熟悉 QT 平臺的人力投入,沒有持續更新和支援。出於折騰精神,決定用比較熟悉的 NodeJS 進行開發一款類似的代理替換工具,並嘗試藉助 Web 便捷快速的 UI 能力搭建更美觀強大的管理介面。
特性
- 基於 NodeJS, 跨平臺
- 便捷的 UI 介面,跟 Fiddler 類似,降低學習成本
- 支援 http 抓包和本地替換除錯,Https/WebSockets 直接代理轉發,暫不支援本地替換
- 基於專案的替換規則管理,方便高效,規則支援拖曳排序
- 支援基於請求路徑的本地檔案替換,支援基於請求路徑的路由轉發(host 配置)
- 替換型別支援:檔案/資料夾替換,combo合併替換,qzmin替換(批量combo),delay延時等
- 支援自動設定系統代理
- 支援規則過濾,只顯示關注的請求
- 提供構建 http get/post 請求介面,方便介面除錯
- 特色功能:模擬gprs/3g等低網速(Mac only)
- 特色功能:支援離線站點到本地,並自動程式碼格式化
1. 抓包分析
實現原理:通過攔截系統 web 代理將瀏覽器或者其他應用的請求轉發到 Livepool,Livepool 通過攔截獲取 http 請求的相關資訊,比如 http 頭,內容等,並將結果快取下來,便於後面進行分析。
2. 本地替換和規則管理
實現原理:livepool 攔截到請求後,對請求的路徑進行分析,將命中規則的請求進行適當處理,替換為對應內容。目前替換型別支援:檔案/資料夾替換,combo合併替換,qzmin替換(批量combo),delay延時等。提供便捷的基於專案的規則管理。
3. 構建除錯請求
便捷的模擬http請求,方便介面除錯
4. 模擬低網速【mac only】
- GPRS: 48kbit/s
- Edge: 64kbit/s
- 3g: 348kbit/s
- ADSL: 768kbit/s
- WIFI: 2048kbit/s
5. 離線站點
將站點內容離線到本地,並自動程式碼格式化,便於檢視
站點儲存到當前資料夾 Sites 下
更多內容:
- 專案官網:http://rehorn.github.io/livepool
- github: https://github.com/rehorn/livepool
- 討論&bug: https://github.com/rehorn/livepool/issues
- Tencent AlloyTeam部落格:http://www.alloyteam.com/2014/07/nodejs-debug-proxy-livepool/
相關閱讀
評論(0)