【发布时间】:2010-09-14 08:14:17
【问题描述】:
我需要测试一些与我不想修改的客户端的 HTTP 交互。我需要测试的是当客户端的请求包含某个静态标头时服务器的行为。
我认为运行此测试的最简单方法是设置一个 HTTP 代理,在每个请求中插入标头。最简单的设置方法是什么?
【问题讨论】:
标签: apache proxy http-headers proxypass
我需要测试一些与我不想修改的客户端的 HTTP 交互。我需要测试的是当客户端的请求包含某个静态标头时服务器的行为。
我认为运行此测试的最简单方法是设置一个 HTTP 代理,在每个请求中插入标头。最简单的设置方法是什么?
【问题讨论】:
标签: apache proxy http-headers proxypass
我在我的开发环境中通过将端口 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>
请参阅 LocationMatch 和 RequestHeader 文档。
这会将标头 myheader: myvalue 添加到发送到应用程序服务器的请求中。
【讨论】:
RequestHeader 无法识别的错误,请确保 mod_headers 已启用,例如a2enmod headers(然后重新加载 Apache)。
您还可以安装 Fiddler (http://www.fiddler2.com/fiddler2/),它非常易于安装(例如比 Apache 更容易)。
启动后,它将自己注册为系统代理。然后打开“规则”菜单,选择“自定义规则...”打开一个 JScript 文件,让您可以自定义请求。
要添加自定义标题,只需在OnBeforeRequest 函数中添加一行:
oSession.oRequest.headers.Add("MyHeader", "MyValue");
【讨论】:
我会尝试tinyproxy。事实上,最好的办法是在其中嵌入一种脚本语言……听起来对Lua 来说是一项完美的工作,尤其是在看到它对mysqlproxy 的工作效果之后
【讨论】:
使用http://www.proxomitron.info并设置你想要的标题等
【讨论】:
我没有使用代理,而是使用 Firefox 插件 "Modify Headers" 插入标题(在我的情况下,使用单点登录来伪造登录,以便我可以作为不同的人进行测试)。
【讨论】:
如果您的系统上有 ruby,那么使用 Sinatra 的小型 Ruby 代理怎么样(确保安装 Sinatra Gem)。这应该比设置 apache 更容易。代码可以找到here.
【讨论】: