【问题标题】:Python 3 HTTP Server sends headers as outputPython 3 HTTP Server 发送标头作为输出
【发布时间】:2014-06-12 20:47:12
【问题描述】:

在我的 GitHub 项目中,目前存在一个由 Python 3.3.1 引起的问题。我正在使用的 Python 的内置 HTTP 服务器似乎将标头作为正常输出发送。当我测试它时,它没有问题,但在用户计算机上存在问题。我无法重现该问题,所以我想知道 Python 3.3.1 中是否存在导致标头问题的错误,或者我的源代码是否存在问题。

您可以找到源代码here。问题截图可以在here找到。

由于标头未正确发送,HTML 等变得无效并且不显示为 HTML,因为浏览器没有获取内容类型的标头。

【问题讨论】:

    标签: python http-headers


    【解决方案1】:

    我刚刚发现了问题。 >= 3.3.x 之后的 Python 版本似乎需要在第一个标头之前发送状态代码。否则,标头将作为正常输出处理。所以我切换了它,现在它可以工作了。下面只是一个例子:

    不起作用:

    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 版本能够处理它。这就是我第一次尝试时无法重现问题的原因。

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 2016-04-29
      • 2012-11-13
      • 1970-01-01
      • 2017-11-27
      相关资源
      最近更新 更多