如何关闭连接
How to close the connection
我正在将一个简单的工具集从 python 2.7 迁移到 3.5,其中一个工具是使用 web.py 的简单 Web 服务器。
不幸的是 web.py 还不能用于 3.5,所以我为此切换到 bottle.py。
根据我正在创建的接口规范,我需要关闭连接,这在 web.py 中可以很容易地通过添加以下行来完成:
web.header('Connection', 'close')
但是当我执行以下操作时,使用 bottle 我得到了 hop-by-hop headers is not allowed 的错误:
response.add_header('Connection', 'close')
如何将此 header 添加到响应中?我已经阅读了 bottle 文档,在线搜索并查看了 bottle 代码。
我不确定,所以对我写的东西持保留态度。
bottle 开发服务器是一个轻微修改的 wsgiref 服务器,它是一个轻微修改的 http.server 服务器。它没有简单的方法或配置来发送 "unusual" headers。您可以将其子类化并编写一些自定义代码。我认为覆盖 send_head 方法 (here) 并在某处包含 self.send_header("Connection", "close")
就足够了。
您可以将 bottly 与您喜欢的任何 wsgi 服务器一起使用。它内置支持相当多的服务器,但任何 wsgi 服务器都应该能够为应用程序提供服务。也许其他服务器有更简单的方法来发送自定义 header.
此外,http.server 不适用于生产,因此即使您可以让 header 正常工作,您也可能想要更改它。如果它仅供内部使用,您可能会使用它。
我正在将一个简单的工具集从 python 2.7 迁移到 3.5,其中一个工具是使用 web.py 的简单 Web 服务器。
不幸的是 web.py 还不能用于 3.5,所以我为此切换到 bottle.py。
根据我正在创建的接口规范,我需要关闭连接,这在 web.py 中可以很容易地通过添加以下行来完成:
web.header('Connection', 'close')
但是当我执行以下操作时,使用 bottle 我得到了 hop-by-hop headers is not allowed 的错误:
response.add_header('Connection', 'close')
如何将此 header 添加到响应中?我已经阅读了 bottle 文档,在线搜索并查看了 bottle 代码。
我不确定,所以对我写的东西持保留态度。
bottle 开发服务器是一个轻微修改的 wsgiref 服务器,它是一个轻微修改的 http.server 服务器。它没有简单的方法或配置来发送 "unusual" headers。您可以将其子类化并编写一些自定义代码。我认为覆盖 send_head 方法 (here) 并在某处包含 self.send_header("Connection", "close")
就足够了。
您可以将 bottly 与您喜欢的任何 wsgi 服务器一起使用。它内置支持相当多的服务器,但任何 wsgi 服务器都应该能够为应用程序提供服务。也许其他服务器有更简单的方法来发送自定义 header.
此外,http.server 不适用于生产,因此即使您可以让 header 正常工作,您也可能想要更改它。如果它仅供内部使用,您可能会使用它。