如何使用cgi包

时间:2016-04-13 04:21:09

标签: python html apache http cgi

我正在使用cgi包在python中编写脚本。我需要根据代码中的一些检查发送 HTTP / 1.1 200 OK \ n HTTP / 1.1 404 Not Found \ n 的响应。如果我打印上述一行作为我的响应的第一行,我的apache服务器会记录错误并返回 500内部服务器错误在这种情况下记录的错误消息的相关部分是格式错误来自脚本的标题' helo.py':标题:HTTP / 1.1 200 OK \ n 任何人都可以指导我在这里做错了什么。

2 个答案:

答案 0 :(得分:3)

你只打印这些线吗?根据{{​​3}},您必须定义Content-Type

print "Content-Type: text/html\r\n\r\n";

如果要发出状态,请改用CGI spec标头(这是CGI,而不是HTTP标头)。

所以

print "Status: 404 Not Found\r\n"
print "Content-Type: text/html\r\n\r\n"

这样就可以了。

答案 1 :(得分:1)

基于Sergey的答案,我想补充一点,对于Python 3,您只需要以下内容:

print("Status: 404 Not Found")
print("Content-Type: application/json;charset=utf-8\n")

最小示例说明上述方法有效

#!/usr/bin/env python3

print("Status: 404 Not Found")
print("Content-Type: application/json;charset=utf-8\n")
print("Hello")

enter image description here