8

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

4

2 に答える 2

7
  1. 何のメリットもありません。それはcurlに任せましょう。

  2. Curl がそれを行います。そして、将来の HTTP 2.0 が下位互換性を損なうことはないと確信しています。

  3. HTTP 1.0 vs 1.1で述べたように、 HTTP 1.0を優先する唯一の正当な理由は、サーバーに Host ヘッダーを送信できない場合です。しかし、正直なところ、現実世界の状況を想像することはできません。

于 2013-09-25T22:57:11.067 に答える