В чужом коде я наткнулся на эту установку для Curl опции:Какова важность установки CURLOPT_HTTP_VERSION в приложении?
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
РНР документация говорит, что по умолчанию этот параметр установлен в CURL_HTTP_VERSION_NONE, который позволяет Curl решить, какая версия HTTP для использования. В противном случае вы можете заставить HTTP 1.0 или HTTP 1.1. Когда-нибудь будет возможность, чтобы заставить HTTP 2.0 (см эту тему на локонов список рассылки: http://curl.haxx.se/mail/lib-2013-09/0020.html)
Я все еще пытаюсь понять различия между HTTP 1.0 против 1.1 из вопроса HTTP 1.0 vs 1.1 и теперь мне интересно, что для будущего с HTTP 2.0 нужны соображения.
Мои вопросы:
Является ли установка CURLOPT_HTTP_VERSION в приложении хорошая идея, если я не всегда могу быть уверен, что версия HTTP сервер способен? Или я должен определить версию с помощью $ _SERVER ['SERVER_PROTOCOL'] и изменить на ней CURLOPT_HTTP_VERSION?
Если я действительно знаю, что сервер способен HTTP 1.1 (или когда-нибудь HTTP 2.0), есть ли основания полагать, что cURL не сможет это понять?
Есть ли случай, когда лучше использовать HTTP 1.0, а не HTTP 1.1?
cURL умный, пусть это выяснит. В основном он будет использовать самую последнюю версию, а затем не вернуться к предыдущей, если не поддерживается. Различия между HTTP 1.0 и 1.1 довольно эзотеричны и редко имеют значение в контексте PHP-приложения, поскольку apache/nginx/iis/etc обрабатывает большинство всего, прежде чем запрос когда-либо попадает на PHP. – Sammitch