在别人的代码中,我遇到了 cURL 的这个选项设置:
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
PHP 文档说,默认情况下,此选项设置为 CURL_HTTP_VERSION_NONE,让 cURL 决定使用哪个 HTTP 版本。否则,您可以强制使用 HTTP 1.0 或 HTTP 1.1。有一天会有强制使用 HTTP 2.0 的选项(请参阅 cURL 邮件列表中的此线程:http: //curl.haxx.se/mail/lib-2013-09/0020.html)
我仍在尝试从 HTTP 1.0 与 1.1 的问题中了解 HTTP 1.0 与 1.1 之间的区别,现在我想知道 HTTP 2.0 的未来需要什么样的考虑因素。
我的问题是:
如果我不能总是确定服务器能够使用什么 HTTP 版本,那么在应用程序中设置 CURLOPT_HTTP_VERSION 是一个好主意吗?或者我应该使用 $_SERVER['SERVER_PROTOCOL'] 检测版本并基于此更改 CURLOPT_HTTP_VERSION 吗?
如果我确实知道服务器能够支持 HTTP 1.1(或有一天 HTTP 2.0),是否有理由认为 cURL 无法解决这个问题?
是否存在使用 HTTP 1.0 而不是 HTTP 1.1 更好的情况?