web-dev-qa-db-ja.com

ブラウザリクエストのHTTPバージョンとサーバーレスポンスのHTTPバージョンはどのように決定されますか?

私の仮定が正しいかどうか誰かが確認できますか?

標準として最も人気のあるブラウザ(Chrome、Firefoxなど)は、各リクエスト行にHTTP /1.1を使用してリクエストを送信すると思います。

HTTP/1.1応答が返されるかどうかは、WebアプリケーションをホストするWebサーバー(Apache、Nginxなどの特定のバージョン)によって決まると思います。最近のすべてのWebサーバーにHTTP/1.1が搭載されていると思います。 WebサーバーがHTTP/1.1をサポートしていない場合、HTTP /1.1要求をHTTP/1.0であるかのように解釈し、HTTP /1.0応答を返すと思います。

2
Bentley4

はい、1つの例外を除いて、あなたにはその要点があると思います。

  1. 各リクエストはhttpプロトコルレベルを指定します
  2. webサーバーは、アップ/ダウンレベルのバージョン管理を伴う要求に基づいて、(もしあれば)異なる方法で何をするかを決定します。
  3. HTTP/1.1は十分に確立されており、適切なサーバーであればそれをサポートします。

ただし、バージョンマッチングは、あなたが提案するほど適応性がありません。クライアント要求でサーバーがサポートしていないメジャーバージョンが指定されている場合、サーバーは次のように応答します。

505 HTTP Version Not Supported

あなたの場合、1.1と1.0はメジャーバージョンを共有しているので、(いくつかの例外を除いて)あなたの仮定は正しいです、サーバーはダウンレベルの要求に応答しようとします。

http応答コードの詳細については、 RFC 2616セクション1 および セクション3.1 を参照してください。

2
Frank Thomas