某些移动网关正在将自定义标头传递到我的网站。这些头文件以各种格式传递,有时是x-msisdn,有时是x-up-calling-line-id等。如何记录以自定义日志格式传递的所有标头?
答案 0 :(得分:0)
通过Apache HTTPD我不知道如何记录所有标题 - 只记录如何记录您知道的一个标题。
使用标准的Apache httpd模块mod_log_config,您可以在CustomLog指令中指定以下选项。
%{Foobar} i Foobar的内容:发送到服务器的请求中的标题行。其他模块(例如mod_headers)所做的更改会影响这一点。
然而你可以在jsp中做到这一点(如果这是你偶然使用的那个)
<!-- method used to send request
<%= request.getMethod() %>
URI of the request
<%= request.getRequestURI() %>
<%
/*This method returns an enumeration of all the header names this
request contains.*/
java.util.Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
String hname = (String)names.nextElement();
%>
<%= hname %>
<%= request.getHeader(hname) %>
<%
}
%>
--!>
答案 1 :(得分:0)
您也可以嗅探网络接口来执行此操作。
Wireshark有tshark(apt-get install tshark) tshark'tcp端口80和(((ip [2:2] - ((ip [0]&amp; 0xf)&lt;&lt; 2)) - ((tcp [12]&amp; 0xf0)&gt;&gt; 2) )!= 0)'-R'http.request.method ==“GET”|| http.request.method ==“HEAD”'
(上面来自http://andy.wordpress.com/2008/07/10/sniffing-http/ tshark是tethereal的新名称
的内容