我需要在 Python 中关闭 urllib.request.urlopen 连接吗?

A. *_*oja 5 python urllib python-2.x urllib3 python-3.x

我正在使用urllib.requestPython 3 中的模块。

我的问题是:

如果我使用打开连接,是否需要关闭连接 urllib.request.ulropen

AK4*_*K47 2

查看urllib.request.urlopen的文档

它指出

urllib.request 模块使用 HTTP/1.1 并在其 HTTP 请求中包含 Connection:close 标头。

当我们对照 HTTP 协议的评论请求检查这一点时:

来自 RFC 2616,第 14.10 节

HTTP/1.1 为发送方定义了“关闭”连接选项,以表明连接将在响应完成后关闭。例如,

Connection: close

请求或响应头字段中的 指示当前请求/响应完成后,连接不应被视为“持久”(第 8.1 节)。

不支持持久连接的 HTTP/1.1 应用程序必须在每条消息中包含“关闭”连接选项。

所以你不需要关闭连接。一旦您收到回复,连接就会关闭

  • 在这种情况下,你能解释一下为什么[python文档](https://docs.python.org/3.6/howto/urllib2.html)提倡使用with语句通过`urllib.request.urlopen( )` 函数? (2认同)