他の誰かのコードで、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.1 よりも HTTP 1.0 を使用した方が良い場合はありますか?