抓包工具在調(diào)試服務時候的應用

開發(fā)多年的服務器高手們,無論你是PHP,NodeJS,Java,Python,Golang。都會遇到一個問題。
當客戶端測試一個api接口出錯時。
你在心里嘀咕?

  1. 他訪問地址是不是拼寫對了?
  2. 他的服務有沒有到我的controller(route)里面?
  3. 他的參數(shù)對不對?
  4. 我返回的對嗎?
    。。。。。
    當這一系列發(fā)生時,大家一頓暫停服務器,加一系列printf。

多次增加printf后,可能找到了問題。有需要把printf再次刪除,但是這會非常耗時,非常的麻煩。
所以,我實在忍無可忍,寫了一個抓包解析http協(xié)議的工具。
代碼在 https://github.com/asmcos/sniffer

他的作用是抓包,解析http協(xié)議,將包的內(nèi)容打印出來。

192.168.10.94->111.13.134.251:58684->80

hq.sinajs.cn
GET /rn=1616738020823&list=sh603983,sh603983_i,bk_new_qtxy HTTP/1.1 
Accept-Language :[zh-CN,zh;q=0.9]
Connection :[keep-alive]
User-Agent :[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4442.4 Safari/537.36]
Accept :[*/*]
Referer :[http://finance.sina.com.cn/realstock/company/sh603983/nc.shtml]
Accept-Encoding :[gzip, deflate]

111.13.134.251->192.168.10.94:80->58684

HTTP/1.1 200 OK
Content-Encoding :[gzip]
Cache-Control :[no-cache]
Content-Length :[3588]
Connection :[Keep-Alive]
Content-Type :[application/javascript; charset=GB18030]

并且我增加了 動態(tài)可配置參數(shù)

{
  "name": "sniffer",
  "device": "en0",
  "port":80,

  "serverurl":"http://127.0.0.1:1337/",
  "clientDeviceid":"2",
  "clientDevicekey":"43ffweqr3",


 
  "jslength":1000,
  "htmllength":0,


  "dumpanystr":"text/plain",
  "dumpanylen":200

}

這個配置可以有好幾個功能,

  1. 動態(tài)配置 網(wǎng)卡
  2. 配置端口號,抓取你的服務器端口
  3. 配以配置將抓取的日志存放到服務器。
    并且我提供了一個服務器,你可以直接存進去。
  4. 可以配置打印任意返回格式,和打印長度
    例如繁瑣的html,你就打印前1000個字節(jié),基本就可以看出來返回對不對了。

存儲這個數(shù)據(jù)的服務器,代碼我也放在了github上
https://github.com/asmcos/AIDatas
這個是采用strapi搭建的

到這里,我還沒有完成
我還在寫另一個項目
analytics,日志分析器

日志分析器,類似awstats,他不但可以分析用戶訪問服務器的訪問量。
還可以做 api 說明,將訪問的api做中文對應說明。

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容