この記事には複数の問題があります。改善にご協力いただくか、トークページでこれらの問題について議論してください。(これらのメッセージを削除する方法とタイミングについてはこちらをご覧ください)
|
動的サイトアクセラレーション(DSA)は、動的なウェブサイトの配信をより効率的にする一連の技術です。[ 1 ]アプリケーション配信コントローラやコンテンツ配信ネットワーク(CDN)のメーカーは、動的なサイトを高速化するために、次のようなさまざまな技術を使用しています。
ADCまたは CDN のいずれかのエッジ デバイスはTCP 多重化が可能で、Web サーバーとクライアントの間に配置してオリジン サーバーの負荷を軽減し、コンテンツ配信を高速化できます。
通常、クライアントとサーバー間の各接続には、接続期間中オリジンサーバー上で稼働する専用プロセスが必要です。クライアントの接続速度が遅い場合、サーバーがリクエストの完了を待機している間、このプロセスは稼働し続けなければならないため、オリジンサーバーの一部が占有されます。TCP多重化では状況が異なります。デバイスはクライアントから完全かつ有効なリクエストを取得し、リクエストが完全に到着した時点でオリジンサーバーに送信します。これにより、ADCやCDNと比較して速度が遅く、コストも高いアプリケーションサーバーやデータベースサーバーの負荷が軽減されます。[ 2 ]
HTTPには、 ETag 、expires、last modificationなどのヘッダーを用いたキャッシュ制御システムが組み込まれています。DSAを謳う多くのCDNやADCは、これを独自のシステムに置き換え、ダイナミックキャッシングまたはダイナミックキャッシュ制御と呼んでいます。これにより、標準的なHTTPキャッシュ制御よりも多くのオプションでキャッシュを無効化およびバイパスできます。[ 3 ]
動的キャッシュ制御の目的は、ウェブサイトのキャッシュヒット率、つまりキャッシュによって処理されるリクエストと通常のサーバーによって処理されるリクエストの比率を高めることです。[ 4 ]
Web 2.0ウェブサイトは動的な性質を持つため、静的なウェブキャッシュを使用することは困難です。動的なサイトは、その定義上、ユーザーや地域ごとにコンテンツがパーソナライズされているためです。例えば、モバイルユーザーに表示されるコンテンツはデスクトップユーザーに表示されるコンテンツと異なる場合があり、登録ユーザーに表示されるコンテンツは匿名ユーザーに表示されるコンテンツと異なる場合があります。登録ユーザー間でも、ソーシャルメディアウェブサイトのようにコンテンツが大きく異なる場合がしばしばあります。
動的なユーザー固有のページを静的にキャッシュすると、キャッシュ システムがコンテンツを区別できるようにする識別子 (URL/GET リクエスト) が、ユーザー固有のトークン/キーを追加することによって正しく変更されない場合、無関係なコンテンツやサードパーティのコンテンツが間違ったユーザーに提供される潜在的なリスクが生じます。
動的キャッシュ制御には、 Cookieベースのキャッシュ制御など、キャッシュを構成するためのオプションがさらに多くあります。Cookieベースのキャッシュ制御では、特定のCookieの有無に基づいてキャッシュからコンテンツを提供できます。Cookieは、ログインしたユーザーのデバイス上の一意の識別子キーを保存し、セッションを開くページを実行する際にユーザーを認証するために既に実装されています。動的キャッシュシステムでは、キャッシュはCookieキーだけでなくURLでも参照されるため、匿名ユーザーにはデフォルトのキャッシュを、ログインユーザーにはパーソナライズされたキャッシュを提供するだけで済みます(静的キャッシュシステムのように、URLにユーザー識別子を追加するためのコード変更は必要ありません)。
パーソナライズされたコンテンツがキャッシュできない場合、エッジデバイス上でキューイングされる可能性があります。これは、システムが将来必要になる可能性のあるレスポンスのリストを保存し、すぐに提供できるようにすることを意味します。これはキャッシュとは異なり、プリフェッチされたレスポンスは一度しか提供されないため、広告などのサードパーティAPIのレスポンスを高速化するのに特に役立ちます。 [ 5 ]
ルート最適化(「レイテンシベースルーティング」とも呼ばれる)は、クライアントと複数のオリジンサーバー間のトラフィックのルートを最適化し、レイテンシを最小限に抑える手法です。ルート最適化は、DNSプロバイダー[ 6 ]またはCDN [ 7 ]によって実行できます。
ルート最適化とは、クライアントとオリジンサーバー間の複数のパスを測定し、それらの間の最速パスを記録することです。このパスは、特定の地理的ゾーンのクライアントからのリクエスト時にコンテンツを提供するために使用されます。[ 8 ]
フロントエンド最適化(FEO)とDSAはどちらもオンラインコンテンツ配信を改善するための一連の技術群を指しますが、その対象は異なります。オンザフライデータ圧縮やキャッシュ制御の改善など、重複する部分もありますが、主な違いは次のとおりです。