设置HTTP代理以插入标头

Log*_*gan 46 apache proxy proxypass http-headers

我需要测试一些与客户端的HTTP交互,而不是修改.我需要测试的是当客户端的请求包含某个静态头时服务器的行为.

我认为运行此测试的最简单方法是设置一个HTTP代理,在每个请求上插入标头.设置它的最简单方法是什么?

Pet*_*ton 73

我在开发环境中做了类似的事情,在端口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>
Run Code Online (Sandbox Code Playgroud)

请参阅LocationMatchRequestHeader文档.

这会将标头myheader:myvalue添加到发送到应用程序服务器的请求中.

  • 它还会将myheader:myvalue添加到响应标头中.关于Apache mod_headers的完整文档:http://httpd.apache.org/docs/current/mod/mod_headers.html (11认同)
  • Well Header正在添加响应,RequestHeader添加到代理后面的服务器请求.我从这里做的是确保一个settings.xml查询永远不会被其他代理缓存,我做了:SetEnvIf Request_URI"\ settings.xml $"object_is_settings_xml标题集Cache-Control"no-cache,no-store"env = object_is_settings_xml标题集Expires"Thu,01 Jan 1970 00:00:00 GMT"env = object_is_settings_xml标题集Pragma"no-cache"env = object_is_settings_xml (4认同)

Nic*_*ico 15

您也可以安装Fiddler(http://www.fiddler2.com/fiddler2/),它非常易于安装(比Apache更容易).

启动后,它会将自己注册为系统代理.然后打开"规则"菜单,选择"自定义规则..."以打开允许您自定义请求的JScript文件.

要添加自定义标题,只需在OnBeforeRequest函数中添加一行:

oSession.oRequest.headers.Add("MyHeader", "MyValue");
Run Code Online (Sandbox Code Playgroud)