【问题标题】:Persistent connection with libcurl与 libcurl 的持久连接
【发布时间】:2015-04-27 03:03:13
【问题描述】:

以下内容来自libcurl主页:

当从同一服务器传输多个文件时,curl 和 libcurl 对持久连接具有出色的支持。 Curl 将尝试重用在同一命令行/配置文件中指定的所有 URL 的连接,并且 libcurl 将重用使用相同 libcurl 句柄进行的所有传输的连接。

为了确定,如果我创建一个 CURL 句柄 (curl_easy_init()) 并设置它的标头,发出 HTTP 请求,然后更改标头并发出另一个请求,libcurl 仍将尝试使用持久连接,即使标题变了吗?

libcurl 主页也说

如果您使用简单接口,并调用 curl_easy_cleanup,libcurl 持有的所有可能打开的连接都将被关闭并忘记。

所以只要我不调用 curl_easy_cleanup,即使请求使用不同的标头,CURL 也会尝试重新使用相同的连接?

谢谢。

【问题讨论】:

    标签: libcurl http-request persistent-connection


    【解决方案1】:

    是的,完全正确。继续重复使用相同的简单句柄,libcurl 将尝试尽可能多地重复使用连接。

    【讨论】:

    • 谢谢,我试试看!
    • @daniel-stenberg 我也有类似的疑问。我知道句柄将重用连接直到关闭,但这是否意味着我永远不会清理该句柄?例如:函数 B 处理对 http 服务器的调用,函数 A 经常调用 B,所以如果我清理 B 中的句柄,那么来自 A 的每个调用都会创建到 http 服务器的新连接。我的理解正确吗?请指导。
    • 抱歉,但在对答案的评论中添加第二个问题似乎是非常糟糕的形式。提出新问题、阅读文档或在 libcurl 邮件列表中提问。
    • @daniel-stenberg 很抱歉,但我认为类似的问题会被标记为重复并已关闭,所以只是在这里问。没问题,我问它是question。实际上我有一个更大的疑问,但这只是其中的一小部分。
    • @DanielStenberg 如果服务器以 500 或 503 回复,libcurl 是否仍然保持连接有效?我知道没有理由终止连接,但以防万一
    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多