Python CGI 如何返回 HTTP 状态码,例如 403?

20 投票
2 回答
13010 浏览
提问于 2025-04-15 14:15

我的Python CGI怎么才能返回一个特定的HTTP状态码,比如403或者418呢?

我试过简单的方法(打印“Status:403 Forbidden”),但是没有效果。

2 个回答

0

我想你是在找 send_error 这个东西。它在 Python 3 的 http.server 里面。

22
print 'Status: 403 Forbidden'
print

对我来说是有效的。不过你确实需要第二个打印语句,因为你需要两个换行符来结束HTTP响应头。否则,你的网络服务器可能会抱怨你没有发送完整的头信息。

sys.stdout('Status: 403 Forbidden\r\n\r\n')

根据RFC的规定,这样做可能在技术上更正确(假设你的CGI脚本在Windows上不是以文本模式运行)。不过这两种换行方式在各个地方似乎都能正常工作。

撰写回答