如何正确检查 header 是否随请求发送
How to properly check whether header is sent along request or not
我有一个应用程序向 Restful API 发出请求,并且应该发送一个名为 X-PDONE-SESSION-ID
的参数。我需要检查 header 是否随请求发送,所以我启用并配置如下:
/etc/httpd/conf/httpd.conf
LoadModule log_forensic_module modules/mod_log_forensic.so
我启用了 VirtualHost,所以这是该 VH 的配置文件:
<VirtualHost *:80>
ServerName admin.domain.local
ServerAlias api.domain.local
ServerAlias share.domain.local
DocumentRoot /var/www/html/backend/web
<Directory /var/www/html/backend/web>
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
</Directory>
ErrorLog logs/pdone-error.log
# CustomLog with format nickname
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
CustomLog logs/pdone-access.log common
</VirtualHost>
现在,下面几行应该可以完成工作:
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
CustomLog logs/pdone-access.log common
但是这个 %{x-pdone-session-id}i
没有记录在日志文件中,我也尝试过将值 %{X-PDONE-SESSION-ID}i
大写,但都没有用。我得到了一个如下所示的日志文件:
192.168.3.1 - - [29/Jul/2015:10:22:19 -0430] "GET /app_dev.php/api/v1/reps/activity?_format=json&rid=00580000003AWtXAAW HTTP/1.1" 200 4369
我正在使用 Postman Chrome 扩展程序发出请求,并且我正在发送 header 如下图所示,否则代码会因未授权异常而失败并且代码可以工作,为什么我不能在发送 header 时看到 header 了吗?为什么值没有登录?我在这里缺少什么?
注意:如果图像显示不佳,请右键单击图像并在新选项卡中打开
昵称common
通常在主服务器配置中定义。只是不要将昵称 common
给其他日志格式,而是在主服务器中未定义的任何其他名称,这将是唯一的:
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" pdone_common
在我看到你的问题之前我不知道,但在 VHost 配置中不能覆盖在主服务器配置中定义的昵称。
我有一个应用程序向 Restful API 发出请求,并且应该发送一个名为 X-PDONE-SESSION-ID
的参数。我需要检查 header 是否随请求发送,所以我启用并配置如下:
/etc/httpd/conf/httpd.conf
LoadModule log_forensic_module modules/mod_log_forensic.so
我启用了 VirtualHost,所以这是该 VH 的配置文件:
<VirtualHost *:80>
ServerName admin.domain.local
ServerAlias api.domain.local
ServerAlias share.domain.local
DocumentRoot /var/www/html/backend/web
<Directory /var/www/html/backend/web>
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
</Directory>
ErrorLog logs/pdone-error.log
# CustomLog with format nickname
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
CustomLog logs/pdone-access.log common
</VirtualHost>
现在,下面几行应该可以完成工作:
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" common
CustomLog logs/pdone-access.log common
但是这个 %{x-pdone-session-id}i
没有记录在日志文件中,我也尝试过将值 %{X-PDONE-SESSION-ID}i
大写,但都没有用。我得到了一个如下所示的日志文件:
192.168.3.1 - - [29/Jul/2015:10:22:19 -0430] "GET /app_dev.php/api/v1/reps/activity?_format=json&rid=00580000003AWtXAAW HTTP/1.1" 200 4369
我正在使用 Postman Chrome 扩展程序发出请求,并且我正在发送 header 如下图所示,否则代码会因未授权异常而失败并且代码可以工作,为什么我不能在发送 header 时看到 header 了吗?为什么值没有登录?我在这里缺少什么?
注意:如果图像显示不佳,请右键单击图像并在新选项卡中打开
昵称common
通常在主服务器配置中定义。只是不要将昵称 common
给其他日志格式,而是在主服务器中未定义的任何其他名称,这将是唯一的:
LogFormat "%h %l %u %t %r %{x-pdone-session-id}i %{Referer}i %{User-Agent}i %>s %b" pdone_common
在我看到你的问题之前我不知道,但在 VHost 配置中不能覆盖在主服务器配置中定义的昵称。