HTTP LargeプラットフォームおよびHTTP Smallプラットフォームでのリクエスト処理方法

適用対象:
HTTP Large
HTTP Small

CDN がユーザーにコンテンツを提供するために、各リクエストは以下の手順を行います。

  1. リクエスト
  2. セキュリティ
  3. キャッシュされたコンテンツのチェック
  4. 取得、配信、キャッシング

以下は、この手順の各フェーズの説明です。

フェーズ1:リクエスト

コンテンツは、CDNまたはエッジCNAME URLを使用してリクエストすることで、弊社ネットワーク経由で配信できます。HTTP LargeプラットフォームのCDN URLのサンプルを表示します。http://wpc.0001.{Base Domain}/800001/Server/index.html リクエストは、そのクライアントに最も近いPOPで処理されます。これによって、ユーザーとエッジサーバー間の接続を確立するために必要な時間が最少となります。

リクエストに関連するCDNドメインとオリジン識別子は、ユーザーがリクエストしているプラットフォームとサービスのタイプを判断すると解釈されます。次に、エッジサーバーはこの情報を使用して、リクエストされたコンテンツが保護されているかどうかを判断します。

注:エッジCNAME URLはCDNドメインまたはオリジン識別子は含みませんが、エッジサーバーはエッジCDN URLを該当するCDN URLにリライトします。

フェーズ 2:セキュリティ

POPのエッジサーバーは、リクエストされたコンテンツが保護されているかどうかを最初にチェックします。コンテンツを保護するために、以下の方法を提供します。

リクエストが上記のセキュリティ要件をいずれも満たすことができない場合、エッジサーバーはリクエストを拒否します。それ以外のステップは行われません。

国別フィルタリング設定

国別フィルタリング設定を使用すると、ディレクトリ別にコンテンツを保護できます。リクエストされたコンテンツが安全なディレクトリにある場合、コンテンツをリクエストしたユーザーのロケーションでリクエストが認証されているか判断します。リクエストが拒否されると、HTTPクライアントは「403禁止」ステータスコードを受け取ります。

注:国別フィルタリング設定が再帰的に安全なロケーションに適用されます。例えば、安全なディレクトリのサブフォルダーにあるコンテンツはそのまま国別フィルタリング設定で保護されます。

トークン認証

リクエストされたコンテンツがトークン認証で保護されている場合、エッジサーバーはクエリストリングのトークン値を探します。見つかると、対象のプラットフォームで指定された暗号化キーに従って、トークン値が復号化されます。次に、HTTPクライアント (ブラウザなど) が復号化されたトークン値で定義されるセキュリティ要件を満たすかどうかチェックが行われます。

注:トークン認証では、コンテンツをフォルダーロケーションごと、またはHTTP Rules Engineで保護できます。

デフォルトでは、トークン認証で保護されたコンテンツに対して以下のいずれかが当てはまる場合に、HTTP クライアントは「403禁止」ステータスコードを受け取ります。

ヒント:上記の場合に「403禁止」ステータスコードを出力する代わりに、カスタム拒否対応を利用して、ユーザーをリダイレクトするか、異なるHTTPステータスコードを報告することができます。

HTTP Rules Engine

HTTP Rules Engineは様々な目的に使用できる強力なツールです。このツールの機能の一つにアクセス拒否(403) があります。この機能は、ユーザー定義の条件が満たされると「403禁止」ステータスコードをHTTPクライアントに返します。

フェーズ3:キャッシュされたコンテンツのチェック

リクエストされたコンテンツが上記のセキュリティ要件をすべてパスする場合、コンテンツがリクエストを処理するPOP上に現在キャッシュされているかどうかのチェックが行われます。

コンテンツの有効期限のチェック

リクエストされたコンテンツのキャッシュ済みバージョンがリクエストを処理する POPで見つかった場合、コンテンツの有効期限がチェックされます。

注:別売りのオリジンシールド機能はオリジンサーバーと弊社POPの間の中間キャッシュレイヤーを提供します。お客様オリジンで有効にした場合、以下のこの手順のオリジンシールドバージョンを参照してください。

注:リクエストされたコンテンツのキャッシュ済みバージョンに「Cache-Control: must-revalidate」ヘッダー値が含まれる場合、弊社エッジサーバーとオリジンシールドサーバーが許可します。これは、このヘッダー値を持つ古いコンテンツに新しいバージョンがあるか常にオリジンサーバーをチェックすることを意味します。

コンテンツの有効期限のチェック (デフォルト):

  1. コンテンツのTime to Live (TTL) はそのCache-Control とExpiresヘッダーで計算されます。コンテンツの期限が切れていない場合、直ちにクライアントに配信されます。
  2. コンテンツがそのTTLを超過した場合、POPが新しいバージョンの CDN またはお客様オリジンサーバーをチェックします。
    • コンテンツのキャッシュ済みバージョンがまだ有効な場合、以下が発生します。
      • エッジサーバーでキャッシュされたコンテンツのレスポンスヘッダーが、新しい TTL を反映して更新される。
      • コンテンツのキャッシュ済みバージョンがクライアント配信される。
    • コンテンツのキャッシュ済みバージョンが有効でない場合、以下が発生します。
      • コンテンツの新しいバージョンがオリジンサーバーから取得される。
      • エッジサーバーがクライアントに配信する。
      • コンテンツの新しいバージョンがそのPOPにキャッシュされる。

コンテンツの有効期限のチェック (オリジンシールド):

  1. コンテンツのTime to Live (TTL) はそのCache-ControlとExpires ヘッダで計算されます。コンテンツの期限が切れていない場合、直ちにクライアントに配信され、それ以降のステップは実行されません。
  2. リクエストがオリジンシールド機能で保護されたお客様オリジンに転送された場合、オリジンシールドサーバー上でキャッシュされたコンテンツのチェックが行われます。
    • コンテンツのキャッシュ済みバージョンが見つかった場合、その有効期限がチェックされます。
      • TTLが有効な場合、以下が発生します。
        • コンテンツは、クライアントに最も近いPOPに該当するエッジサーバー経由でクライアントに提供される。
        • 次に、そのエッジサーバーにコンテンツがキャッシュされる。
      • TTLの期限が切れている場合、オリジンシールドサーバーのキャッシュ済みバージョンがお客様オリジンサーバーと比較されます。
        • コンテンツの同じバージョンがお客様オリジンサーバーで見つかった場合、以下が発生します。
          1. オリジンシールドサーバーのヘッダーが更新される。
          2. コンテンツは、クライアントに最も近いPOPに該当するエッジサーバー経由でクライアントに提供される。
          3. 次に、そのエッジサーバーでキャッシュされる。
        • 新しいバージョンが見つかった場合、以下が発生します。
          1. オリジンシールドサーバーがコンテンツの新しいバージョンを受け取る。
          2. オリジンシールドサーバーが、クライアントに最も近いPOPに該当するエッジサーバーに転送する。
          3. 次に、そのオリジンシールドサーバーでキャッシュされる。
          4. エッジサーバーがクライアントに配信する。
          5. 次に、そのエッジサーバーでキャッシュされる。
    • キャッシュされたコンテンツが見つからなかった場合、以下が発生します。
      1. コンテンツがお客様オリジンサーバーからリクエストされ、オリジンシールドサーバーが受け取る。
      2. オリジンシールドサーバーが、クライアントに最も近いPOPに該当するエッジサーバーに転送する。
      3. 次に、そのオリジンシールドサーバーでキャッシュされる。
      4. エッジサーバーがクライアントに配信する。
      5. 次に、そのエッジサーバーでキャッシュされる。

注:デフォルトのオリジンシールド設定は上記のような動作となります。ただし、場合によっては、特定のPOPのオリジンシールドをバイパスするようにオリジンシールドを設定する必要があります。このタイプの設定では、いずれかのPOPのエッジサーバーがコンテンツの有効期間をデフォルトでチェックします。

フェーズ4:取得、配信、キャッシング

コンテンツがリクエストを処理しているPOPでキャッシュされていないか、コンテンツのキャッシュ済みバージョンが古くなっている場合、新しいバージョンをCDNまたはお客様オリジンサーバーから取得する必要があります。それぞれのPOPのエッジサーバーは、CDNまたはお客様オリジンサーバーからコンテンツをリクエストします。

オリジンサーバーからコンテンツを受信し始めると、エッジサーバーはリクエストしたクライアントにすぐに配信を開始します。コンテンツ全体がオリジンサーバーから取得されると、そのPOPでキャッシュされます。そのコンテンツに割り当てられるキャッシュポリシーはオリジンサーバーのレスポンスで提供される Cache-ControlヘッダーおよびExpiresヘッダーにより決定されます。そのコンテンツにヘッダー情報がない場合、コンテンツのデフォルトのmax-ageは7日間です。これは、コンテンツのキャッシュされたバージョンがPOPに保存され、7日間有効として扱われることを意味します。

注:別売りのTTP Rules Engineを使用して、CDNによるコンテンツのキャッシュ方法をカスタマイズすることができます。例えば、cache ユーザーがダウンロードを中止した場合でもコンテンツをキャッシュするように CDNを設定できます。