Python 3 HTTP服务器将头部作为输出发送
1 个回答
2
我刚刚找到了问题所在。看起来,Python 3.3.x 及之后的版本要求在发送第一个头信息之前,必须先发送状态码。否则,头信息就会被当作普通输出处理。所以我调整了一下顺序,现在就可以正常工作了。下面是一个例子:
不工作:
self.send_header('Content-type', 'text/html')
self.send_response(200)
工作:
self.send_response(200)
self.send_header('Content-type', 'text/html')
顺便提一下:Internet Explorer 并没有这个问题。不过,HTTP 的规范确实要求在头信息之前发送状态码。但早期的 Python 版本可以处理这个问题。这就是我第一次尝试时无法重现这个问题的原因。