如何在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>"