如何读取 Python CGI 脚本中的所有 HTTP 头?


使用 python,能够在 apache CGI 脚本中获取自定义请求标头的值。解决方案与此类似。

Apache 的 mod_cgi 将为接收到的每个 HTTP 请求头设置环境变量,由此方式设置的变量都将具有 HTTP_ 前缀,所以例如 x-client-version: 1.2.3 将能够作为变量 HTTP_X_CLIENT_VERSION 获取。

所以,要读取上述自定义标头,只要调用 os.environ["HTTP_X_CLIENT_VERSION"] 即可。

以下脚本将打印所有 HTTP_* 标头和值 −

#!/usr/bin/env python

import os
print "Content-Type: text/html"
print "Cache-Control: no-cache"
print

print "<html><body>"
for headername, headervalue in os.environ.iteritems():
    if headername.startswith("HTTP_"):
        print "<p>{0} = {1}</p>".format(headername, headervalue)
 
print "</html></body>"

更新于:2020-02-27

1K+ 浏览

开启您的 职业

完成课程即可获得认证

开始
广告