在其他人的代码中,我遇到了cURL的此选项设置:
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
Run Code Online (Sandbox Code Playgroud)
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 vs 1.1理解HTTP 1.0 vs 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更好的情况?
我看不出任何好处。让curl处理。
Curl将为您做到这一点。而且我很确定未来的HTTP 2.0不会破坏向后兼容性。
如HTTP 1.0 vs 1.1中所述,首选HTTP 1.0的唯一有效理由是无法将Host标头发送到服务器。但老实说,我无法想象现实世界的情况。