“* 到主机 example.com 的连接 #0 保持不变”是什么意思?

coo*_*101 13 curl

我正在使用 curl curl -v https://example.com

最后它说* Connection #0 to host example.com left intact。这意味着什么?

Ren*_*nex 26

简短的回答:当您只请求一个 URL 时,这没有任何意义。完成并且进程退出后,尽管存在误导性消息,但curl连接在任何地方都没有保持完整;正如您所期望的那样,它已关闭。

仅当您在同一curl调用中获取多个 URL 时,才会重用该连接。在这种情况下,这是一件好事,您不需要强制关闭连接,除非您正在调试连接问题。

(当我想检查是否curl以某种方式在我的 shell 后台保持连接打开时,我也去寻找答案。事实并非如此。)


Mar*_*tin 16

向 CURL 命令添加标题“Connection: close”应该可以解决问题:

curl -v -H "Connection: close" https://example.com
Run Code Online (Sandbox Code Playgroud)

可以在这篇文章中找到解释:

为什么连接完好无损?

连接保持不变,因为服务器允许它保持打开状态,并且在您收到发送的请求的响应后,CURL 无需关闭它。这就是为什么当您期望 'Connection:close' 时请求返回 'Connection: keep-alive' 标头的原因

如果您想关闭连接,那么您可以发送带有“Connection: close”的 CURL 请求,如下所示,您可以在响应中看到“* Closing connection 0”。

我希望文章https://www.sneppets.com/software/connection-0-to-host-localhost-left-intact/可以帮助您解决问题。

  • 那么就代表成功了? (2认同)
  • 不过没有问题需要解决,并且大多数用户不需要添加该标头。 (2认同)