如何在使用CGI时用Perl获取HTTP头信息

7

我正在使用Perl/CGI/Apache,并且想要获取X-Forwarded-For HTTP头。我该如何做到这一点?

2个回答

16

除了一些特殊处理的头之外,CGI将Header-Name:的值存储在环境变量HTTP_HEADER_NAME中。因此,如果请求中存在X-Forwarded-For,应该在$ENV{HTTP_X_FORWARDED_FOR}中找到。


@cjm,非常感谢。是否有任何RFC、协议或标准定义了Web服务器以环境变量的方式带有前缀HTTP_将HTTP头传递给CGI进程的方法? - http8086
@hylepo,RFC 3875 - cjm

5

CGI有一种访问HTTP请求头字段的方法,称为“http”,您可以这样说:

my $q = CGI->new()
print $q->http('X-Forwarded-For');

无论您是作为CGI运行,还是在fastcgi、mod_perl等环境中运行,此方法都适用...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接