我使用Ruby + Watir通過Firefox請求頁面。設置代理以記錄Firefox請求
我想通過瀏覽器記錄每個http請求的標題和內容。
是否可以配置代理解決方案來存儲此信息,無論是在文件中還是管道中直接插入應用程序?我可以使用諸如squid或nginx之類的東西來記錄標題/內容信息嗎? PS:運行Ubuntu x64。
我使用Ruby + Watir通過Firefox請求頁面。設置代理以記錄Firefox請求
我想通過瀏覽器記錄每個http請求的標題和內容。
是否可以配置代理解決方案來存儲此信息,無論是在文件中還是管道中直接插入應用程序?我可以使用諸如squid或nginx之類的東西來記錄標題/內容信息嗎? PS:運行Ubuntu x64。
對於Windows,有一個名爲Fiddler的程序,它完全符合您的需求,所以我搜索了「Fiddler for Linux」,並提出了Charles。看起來很強壯。
我沒有注意到Charles的非試用版本的價格標籤。另一個值得關注的應用是Firefox的附加組件Poster。我不清楚它是捕獲所有流量還是隻返回直接輸入請求的響應,但仍可以幫助您完成項目。
如果你不想要代理,你可以使用tcpdump,例如 的tcpdump -i EN0 -n -s 0 -w output.pcap
然後你可以回顧一下所有流量中的Wireshark等
的BrowserMob代理可能是一個很好的適合你(運行作爲一個jar文件)
你也可以在Ruby中自己製作(但只適用於HTTP,不適用於HTTPS) eg
require 'rubygems'
require 'webrick/httpproxy'
@proxy_port = ARGV[0] || 9090
# Optional flags
@print_headers = false
@print_body = true
server = WEBrick::HTTPProxyServer.new(
:Port => @proxy_port,
:AccessLog => [],
:ProxyContentHandler => Proc.new do |req,res|
puts "-"*75
puts ">>> #{req.request_line.chomp}\n"
req.header.keys.each { |key| puts "#{key.capitalize}: #{req.header[key]}" if @print_headers }
puts "<<<" if @print_headers
puts res.status_line if @print_headers
res.header.keys.each { |key| puts "#{key.capitalize}: #{res.header[key]}" if @print_headers }
puts res.body unless res.body.nil? or [email protected]_body
end
)
trap("INT") { server.shutdown }
server.start
這可能是更好的superuser.com .. – 2010-02-05 08:51:25
你應該看看browsermob代理。還有一個紅寶石寶石客戶端可以創建多個代理。其餘的API允許爲當前代理獲取har(網絡流量,包括請求消息)。 – activars 2012-07-07 01:01:09