2008-09-30 107 views
37

我需要測試與客戶端的一些HTTP交互,我寧願不修改。我需要測試的是當客戶端的請求包含特定的靜態頭時服務器的行爲。設置HTTP代理以插入標頭

我在想,運行這個測試最簡單的方法是設置一個HTTP代理,在每個請求中插入頭文件。設置這個最簡單的方法是什麼?

回答

59

我通過80端口配置Apache作爲端口8080上的我的應用程序服務器的代理,用下面的Apache做我的開發環境是這樣的配置:

NameVirtualHost * 
<VirtualHost *> 
    <Proxy http://127.0.0.1:8080/*> 
     Allow from all 
    </Proxy> 
    <LocationMatch "/myapp"> 
     ProxyPass http://127.0.0.1:8080/myapp 
     ProxyPassReverse http://127.0.0.1:8080/myapp 
     Header add myheader "myvalue" 
     RequestHeader set myheader "myvalue" 
    </LocationMatch> 
</VirtualHost> 

LocationMatchRequestHeader文檔。

這會將標頭myheader:myvalue添加到發送到應用程序服務器的請求中。

+11

它還會將myheader:myvalue添加到響應標題中。關於Apache mod_headers的完整文檔:http://httpd.apache.org/docs/current/mod/mod_headers.html – 2012-03-05 10:18:47

+1

@Fred:那麼我們如何限制頭文件只出現在代理請求中呢? – 2013-03-29 08:42:09

3

我想嘗試tinyproxy。事實上,合租最好將是使嵌入的腳本語言有...聽起來像Lua一個完美的工作,尤其是看到它如何工作了mysqlproxy

2

我有已經使用Burp同事後(」一個用於攻擊和測試Web應用程序的交互式HTTP/S代理服務器「)。您也可以使用Fiddler(「HTTP調試代理」)。

14

您還可以安裝非常容易安裝的提琴手(http://www.fiddler2.com/fiddler2/)(比Apache更容易)。

啓動後,它將自己註冊爲系統代理。然後打開「規則」菜單,然後選擇「自定義規則...」打開一個JScript文件,它允許您自定義請求。

要添加自定義標題,只需添加一行在OnBeforeRequest功能:

oSession.oRequest.headers.Add("MyHeader", "MyValue"); 
0

而不是使用一個代理,我使用的是Firefox插件"Modify Headers"插入頁眉(在我的情況下,假使用單點登錄的登錄,所以我可以作爲不同的人測試)。

0

如果您的系統上有紅寶石,那麼使用Sinatra的小型Ruby代理(確保安裝Sinatra Gem)如何?這應該比設置Apache更容易。代碼可以找到here.