2008-09-30 101 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.