GO語(yǔ)言實(shí)現(xiàn)的http抓包分析工具pproxy介紹
引言
web 開(kāi)發(fā)和 API 開(kāi)發(fā)中難免要詳細(xì)分析 http 請(qǐng)求和響應(yīng)信息。web 開(kāi)發(fā)的話,瀏覽器提供了便利的工具,比如 chrome 和 IE 都帶了 develop tool,而 firefox 更是有十分強(qiáng)大的 firebug,可以讓 http 請(qǐng)求的所有秘密一覽無(wú)遺。目前是 app 大流行的時(shí)代,想要觀察 app 中得 http 請(qǐng)求的秘密,瀏覽器的工具和插件都無(wú)能為力,有不少本地化的軟件可以很好的解決這個(gè)問(wèn)題,Windows 平臺(tái)下有大名鼎鼎的 Fiddler 和 HttpWatch,Mac 平臺(tái)下有 Charles。Charles 是一個(gè)收費(fèi)軟件,價(jià)格不菲要 $50。錢還不是關(guān)鍵問(wèn)題,作為一名 geek,當(dāng)然想更向往開(kāi)源,輕量的解決方案了,無(wú)意中發(fā)現(xiàn) pproxy,簡(jiǎn)單使用了一下,覺(jué)得相當(dāng)棒,可以做絕佳的替代方案。
比較
pproxy 和 Fiddler、Charles 最大的不同是,它是一個(gè)開(kāi)源軟件,使用 go 編寫(xiě),代碼托管在 github 上。因?yàn)殚_(kāi)源,作為一名 geek,就可以通過(guò)閱讀源代碼對(duì)其工作機(jī)制一探究竟,如果發(fā)覺(jué)某些方面不能滿足需求,可以直接向開(kāi)發(fā)者提需求,也可以自己動(dòng)手,豐衣足食,造福大眾。
pproxy 的工作機(jī)制和本地化軟件如 Fiddler、Charles 差別很大。Fiddler 和 Charles 是一個(gè)本地化軟件,通常是安裝在桌面電腦上,通過(guò)在桌面電腦建立 proxy,然后截獲的 http 請(qǐng)求和響應(yīng)數(shù)據(jù),提供一個(gè)本地化的 UI 界面提供服務(wù)。而 pproxy 是一個(gè)服務(wù)端軟件,通常安裝在 Linux 服務(wù)器上(當(dāng)然也是可以安裝在桌面電腦上),在服務(wù)器上建立 proxy 截獲 http 請(qǐng)求和響應(yīng)數(shù)據(jù),另外提供一個(gè)遠(yuǎn)程的基于 web (html5)的 UI 界面提供服務(wù)。
Fiddler UI 如下所示:

pproxy UI 如下所示:

使用
pproxy 使用比較簡(jiǎn)單,具體可以參考其使用說(shuō)明 pproxy。 難得的是他的作者是中國(guó)人,所以說(shuō)明都是中文的。
總結(jié)
pproxy 是一個(gè)開(kāi)源的輕巧的 http 抓包分析工具,尤其適合 API http 請(qǐng)求分析,完全可以替換昂貴的收費(fèi)工具,同時(shí)也可以探索其源碼學(xué)習(xí) GO 語(yǔ)言,學(xué)習(xí) http 協(xié)議和分析方法。
相關(guān)文章
Go語(yǔ)言實(shí)現(xiàn)23種設(shè)計(jì)模式的使用
設(shè)計(jì)模式是軟件工程中各種常見(jiàn)問(wèn)題的經(jīng)典解決方案,,本文主要介紹了Go語(yǔ)言實(shí)現(xiàn)23種設(shè)計(jì)模式的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Go語(yǔ)言普通指針unsafe.Pointer?uintpt之間的關(guān)系及指針運(yùn)算
這篇文章主要為大家介紹了Go語(yǔ)言普通指針unsafe.Pointer?uintpt之間的關(guān)系及指針運(yùn)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Go語(yǔ)言中讀取命令參數(shù)的幾種方法總結(jié)
部署golang項(xiàng)目時(shí)難免要通過(guò)命令行來(lái)設(shè)置一些參數(shù),那么在golang中如何操作命令行參數(shù)呢?那么下面這篇文章就來(lái)給大家介紹了關(guān)于Go語(yǔ)言中讀取命令參數(shù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-11-11
Golang打印復(fù)雜結(jié)構(gòu)體兩種方法詳解
在?Golang?語(yǔ)言開(kāi)發(fā)中,我們經(jīng)常會(huì)使用結(jié)構(gòu)體類型,如果我們使用的結(jié)構(gòu)體類型的變量包含指針類型的字段,我們?cè)谟涗浫罩镜臅r(shí)候,指針類型的字段的值是指針地址,將會(huì)給我們?debug?代碼造成不便2022-10-10
解決golang在import自己的包報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決golang在import自己的包報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04

