HTTP 1.0 vs 1.1 質問する

HTTP 1.0 vs 1.1 質問する

HTTP 1.0 と HTTP 1.1 の違いについて簡単に説明してもらえませんか? 両方の RFC をしばらく調べましたが、違いをあまり見つけられませんでした。Wikipedia には次のように書かれています:

HTTP/1.1 (1997-1999)

現在のバージョン。永続的な接続がデフォルトで有効になっており、プロキシで適切に機能します。また、リクエスト パイプラインもサポートされており、複数のリクエストを同時に送信できるため、サーバーはワークロードを準備し、要求されたリソースをより迅速にクライアントに転送できます。

しかし、それは私にとっては大した意味がありません。これはやや複雑なテーマであることは承知していますので、完全な回答を期待しているわけではありませんが、もう少し低いレベルでの違いについて簡単に説明してもらえませんか?
つまり、HTTP サーバーまたはアプリケーションを実装するために必要な情報を探しているのです。主に、自分で解決できるように、正しい方向へのヒントを求めています。

ベストアンサー1

プロキシ サポートとホスト フィールド:

HTTP 1.1 では仕様により Host ヘッダーが必須となります。

HTTP 1.0 では正式には Host ヘッダーは必須ではありませんが、追加しても問題はありません。また、多くのアプリケーション (プロキシ) では、プロトコルのバージョンに関係なく Host ヘッダーが表示されることを期待しています。

例:

GET / HTTP/1.1
Host: www.blahblahblahblah.com

このヘッダーは、プロキシ サーバー経由でメッセージをルーティングできるため、また、Web サーバーが同じサーバー上の異なるサイトを区別できるため、便利です。

つまり、blahblahlbah.com と helohelohelo.com の両方が同じ IP を指している場合、Web サーバーはホスト フィールドを使用して、クライアント マシンが要求するサイトを区別できます。

永続的な接続:

HTTP 1.1 では永続的な接続も可能になり、同じ HTTP 接続で複数のリクエスト/レスポンスが可能になります。

HTTP 1.0では、リクエスト/レスポンスのペアごとに新しい接続を開く必要がありました。そして、レスポンスごとに接続が閉じられていました。これは、次のような大きな効率の問題を引き起こしました。TCP スロースタート

OPTIONS メソッド:

HTTP/1.1 では OPTIONS メソッドが導入されました。HTTP クライアントはこのメソッドを使用して、HTTP サーバーの能力を判断できます。これは主に、Web アプリケーションでのクロス オリジン リソース共有に使用されます。

キャッシング:

HTTP 1.0 では、If-Modified-Since ヘッダーによるキャッシュがサポートされていました。

HTTP 1.1 では、「エンティティ タグ」と呼ばれるものを使用することで、キャッシュのサポートが大幅に拡張されています。2 つのリソースが同じである場合、それらのエンティティ タグは同じになります。

HTTP 1.1 では、If-Unmodified-Since、If-Match、If-None-Match 条件ヘッダーも追加されています。

Cache-Control ヘッダーのようなキャッシュに関連する追加機能もあります。

100 続行ステータス:

HTTP/1.1 には、100 Continue という新しい戻りコードがあります。これは、サーバーがリクエストを処理できるかどうか、またはリクエストを処理する権限があるかどうかさえクライアントが確信していない場合に、クライアントが大きなリクエストを送信するのを防ぐためのものです。この場合、クライアントはヘッダーのみを送信し、サーバーはクライアントに 100 Continue を通知して、本文を先に進めます。

さらに詳しく:

  • ダイジェスト認証とプロキシ認証
  • 追加の新しいステータスコード
  • チャンク転送エンコーディング
  • 接続ヘッダー
  • 強化された圧縮サポート
  • もっともっと。

おすすめ記事