[apache]通过mod_dumpio模块查看http body中data信息,apachemod_dumpio


需求

在apache服务端查看client发送过来的post data信息。比对post data信息是否与设计相符。

环境准备

1 apache http server
这里不介绍如何安装apache server。查看本地的server版本:
httpd -v

Server version: Apache/2.2.15 (Unix)
Server built:   Dec  8 2011 18:10:49

2 Client报文发送方
本文使用的是企业软件发送的post信息,如下图:

Post内容到/usage/v6 的URI
3 apache http Server配置
直接在server的html目录下,新建目录(usage/v6,放置一个empty.txt文件即可)。

DocumentRoot “/var/www/html”

初步分析:

通过http://httpd.apache.org/docs/1.3/logs.html 中介绍的mod_log_config Module,只能打印出相关的头部信息,例如:Referer, User-agent。但是我希望看到body中的data。

目前找到解决方案是使用apache的扩展module: dumpio_module modules/mod_dumpio.so

具体操作方案:

使用mod_dumpio模块,此模块可以把apache所有的接受报文和响应报文log到error.log中。
具体见: http://httpd.apache.org/docs/2.4/mod/mod_dumpio.html

1 apache server加载dumpio模块
在httpd.conf总找到如下行:

# LoadModule dumpio_module modules/mod_dumpio.so

apache默认是不载此模块的,去掉前面的#。
2 配置日志级别。

#LogLevel warn
LogLevel debug

DumpIOInput On
DumpIOOutput On
DumpIOLogLevel debug
把默认的LogLevel改成 debug,然后打开 DumpIO的请求和响应报文开关。这样,在logs/error_log下面就可以查看到所有的报文data部分。

3 重启http server(httpd -k restart)
重启后,触发请求操作,通过查看error_log中的信息查看配置是否生效。

Todo:

1 发送post data后,响应报文是301 Moved Permanenetly格式。不理解这个的用处。以后有时间再分析。
2 此包是软件自己触发出来的。改天使用httpclient.jar创建client包,查看server处理情况:http://hc.apache.org/httpclient-3.x/

相关内容

    暂无相关文章