anyproxy代理入門

關於anyproxy

Anyproxy 是alibaba 前端團隊開源的http/https 基於node的代理服務器。前端

業界的http代理工具在windows下有fiddler,mac有charles,爲何選擇anyproxy呢?我我的認爲有如下幾個點:node

  • 同時兼容mac/windows用戶
  • 提供友好的web版界面,可實時觀測網絡請求
  • 基於nodeJS開發,開放接口,容許用戶進行充分的自定義進行數據mock等操做,更符合咱們的操做習慣

簡單的使用操做

// 安裝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

image

iOS >= 10.3信任CA證書除了上述證書安裝過程,還須要在 設置->通用->關於本機->證書信任設置 中把AnyProxy證書的開關打開,不然默認是關閉的。npm

image

rule文檔的使用

對於前端工程師來講,使用代碼最重要的一個用途就是攔截請求/響應,在客戶端與服務端都無感知的狀況下更改調試腳本、修改響應頭內容等。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的官網文檔 寫得很是詳細,使用也很簡單,有興趣的童鞋能夠去看看。網絡

相關文章
相關標籤/搜索