Anyproxy 是alibaba 前端團隊開源的http/https 基於node的代理服務器。前端
業界的http代理工具在windows下有fiddler,mac有charles,爲何選擇anyproxy呢?我我的認爲有如下幾個點:node
// 安裝anyproxy npm install -g anyproxy // 啓動 anyproxy // 默認端口號8001 // 訪問http://127.0.0.1:8002,web界面上能看到全部的請求信息 // 若需抓取https請求,需生成證書 // 生成證書 anyproxy-ca // 啓動AnyProxy,並解析全部https請求 anyproxy --intercept
手機須要手動添加信任,舉例iOS安裝證書。以下圖,點擊web ui中的 Root CA,按提示掃描二維碼安裝。web
iOS >= 10.3信任CA證書除了上述證書安裝過程,還須要在 設置->通用->關於本機->證書信任設置 中把AnyProxy證書的開關打開,不然默認是關閉的。npm
對於前端工程師來講,使用代碼最重要的一個用途就是攔截請求/響應,在客戶端與服務端都無感知的狀況下更改調試腳本、修改響應頭內容等。anyproxy提供的配置仍是很靈活的,它提供的一個典型的規則模塊代碼結構以下:windows
// rule.js module.exports = { // 模塊介紹 summary: 'my customized rule for AnyProxy', // 發送請求前攔截處理 *beforeSendRequest(requestDetail) { /* ... */ }, // 發送響應前處理 *beforeSendResponse(requestDetail, responseDetail) { /* ... */ }, // 是否處理https請求 *beforeDealHttpsRequest(requestDetail) { /* ... */ }, // 請求出錯的事件 *onError(requestDetail, error) { /* ... */ }, // https鏈接服務器出錯 *onConnectError(requestDetail, error) { /* ... */ } };
調用 anyproxy --rule rule.js
便可。服務器
Anyproxy的官網文檔 寫得很是詳細,使用也很簡單,有興趣的童鞋能夠去看看。網絡