技術共有

HTTP1.0とHTTP1.1の違い

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

永続的な接続

HTTP/1.1永続的な接続はデフォルトでサポートされており、複数の HTTP 要求と応答を TCP 接続で送信できるため、接続の確立と終了のオーバーヘッドが軽減されます。

そしてHTTP/1.0デフォルトは短い接続です。各リクエストは TCP 接続を確立する必要があります。Connection: keep-aliveヘッダーを使用して永続的な接続を実装します。Connection: keep-aliveの目的は、サーバーとクライアントの間の TCP 接続を、応答を送信した直後に閉じるのではなく、再利用できるように維持する必要があることを伝えることです。この機能は HTTP/1.0 で導入され、HTTP/1.1 ではデフォルトの動作になりました。

パイプライン

HTTP/1.1パイプライン処理をサポートし (デフォルトでは有効になっていません)、クライアントは最初のリクエストに対する応答が到着する前に複数のリクエストを送信できるため、待ち時間が短縮され効率が向上します。

HTTP/1.0 はパイプラインをサポートしていません。

キャッシュ制御

HTTP1.0主に使用されるIf-Modified-Since/Expiresキャッシングの判断基準として

HTTP1.1さらに多くのキャッシュ制御戦略が導入されています。Etag / If-None-Matchキャッシュ戦略を制御するオプションのキャッシュ ヘッダーが追加されるまで待ちます。

エラー処理:

HTTP/1.1次のようないくつかの新しい HTTP ステータス コードが追加されました。100 Continue、エラー処理とリクエストに対する中間応答を強化するために使用されます。

100 Continue 応答を受信した後、クライアントはリクエスト本文の送信を続ける必要があります。サーバーが次の内容のメッセージを受信した場合、Expect: 100-continueリクエストの処理を続行しないことを決定した後 (たとえば、リクエストのヘッダー情報がリクエストを受け入れられないことを示している場合)、サーバーは 100 Continue の代わりにエラー ステータス コード (400 Bad Request など) を返す必要があります。

Host頭:

HTTP/1.1紹介されたHostこのヘッダーを使用すると、クライアントは要求されたホスト名を指定できるようになり、同じサーバー上で複数のドメイン名をホストできるようになります。各ドメイン名はサーバー上の異なるリソースまたはサービスにマッピングできます。HTTP/1.0 にはこのヘッダー フィールドがありません。

帯域幅の最適化:

HTTP1.0たとえば、クライアントはオブジェクトの一部だけを必要とするが、サーバーはオブジェクト全体を送信し、再開機能をサポートしないなど、帯域幅を無駄に消費する現象がいくつかあります。HTTP1.1リクエストヘッダーに導入されるrangeヘッダー フィールド。リソースの特定の部分のみをリクエストできます。つまり、リターン コードは次のとおりです。206(Partial Content)