技術情報 · 1 min read · Sep 13, 2025

mod_gzip - Apacheウェブサーバーによる圧縮コンテンツの提供 - ページ 2

著者: マイケル・シュレプル

HTTPにおける通信

ウェブコンテンツのサーバーとクライアント間の伝送には、ハイパーテキスト転送プロトコル(HTTP)が使用されます。

通信は以下のように機能します:

  1. クライアントがサーバーにリクエストを送信します。このリクエストは主に、クライアントが受信したいデータを説明するHTTPヘッダーで構成されています。
    クライアントは、リクエストされたページのURLを指定するなど、データコンテンツを直接影響を与えることができます。他のリクエストの一部は、サーバーが複数のデータバリエーションを提供しなければならない場合に、クライアントが受け取りたいデータの種類に関する追加情報をサーバーに提供します。
  2. サーバーは、要求されたデータとその属性を決定するために、利用可能なすべての情報を評価し、その後、クライアントのリクエストに最も適した形式でこれらのデータを提供しようとします。
    このデータパケットには再びHTTPヘッダーが含まれていますが、主にデータが含まれており、HTTPヘッダーを考慮しなければ部分的にしか解釈できません。

望ましいコンテンツを決定する第二の側面は、一般的な形でコンテンツネゴシエーションと呼ばれます。ここで説明されている形で圧縮ページコンテンツを提供することは、この一般的な原則に基づいています。

HTTPにおけるエンコーディング

HTTP 1.1は、章3.5でいわゆるコンテンツエンコーディングを定義しており、これはこの標準に準拠する各ブラウザがサポートすべきものです。

サーバーとクライアント間の通信において、これらのエンコーディングは以下の意味を持ちます:

  1. このクライアントは、HTTPヘッダーAccept-Encoding:に受け入れ可能なコンテンツエンコーディングのリストを指定することができます。特別なエンコーディングアイデンティティ(コンテンツを変更しないエンコーディングを説明する)は、暗黙的にデフォルト値として使用されます。
  2. サーバーはこのクライアントが受け入れたエンコーディングを使用して、要求されたドキュメントのコンテンツを提供すべきです。
    サーバーがそれを行うことができない場合、406 Not Acceptableというステータスコードでリクエストを拒否すべきです。それにもかかわらず、サーバーはクライアントのリクエストに従って受け入れられないコンテンツを提供することができます(その処理がクライアントにとって解決不可能な問題を引き起こす可能性があります)。
    Apacheウェブサーバーは、この点において防御的な戦略を採用しています:クライアントのリクエストに従ってページを提供できないが、他のいくつかのバリエーションがある場合、状況の簡単な説明とすべての関連ドキュメントへのリンクを含むHTMLドキュメントを動的に生成します。(これは、このドキュメントが、現在の構成に従って私がサポートする言語deおよびenのいずれも受け入れないブラウザによって要求された場合にも当てはまります。私はこの問題を外国語の読者に認識させるために、意図的にデフォルト値を定義していません。)

サーバーがクライアントが処理できないエンコーディングを含むファイルを提供すると、そのクライアントはそれを正しく処理できない可能性があります。

このドキュメントの元の場所:

http://www.schroepl.net/projekte/mod_gzip/encoding.htm

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。