CDN キャッシュについて話す
1.CDNとは何ですか?
CDN の役割に関しては、電車の切符を購入する 8 年間の経験を使って説明できます:
8 年前には、電車の切符を販売するポイントはなく、12306.cn と会話することはさらに不可能でした。について。当時、鉄道の切符は駅の切符売り場でしか購入できず、私が住んでいた小さな郡では電車にアクセスできず、市内の駅で切符を購入する必要があり、時間がかかりました。郡から市内まで往復4時間のドライブは人生の無駄だ。その後、田舎の小さな町に電車の切符売り場ができて、市内の人々は切符を買うために一度に並ぶ必要がなくなり、とても便利になりました。 。
CDN は、ユーザーが Web サイトを閲覧すると、海南モバイル ユーザーのリクエストに応答するためにユーザーに最も近い CDN エッジ ノードを選択します。北京電信のコンピュータ ルームのサーバーまでは送信されません (発信局が北京電信のコンピュータ ルームに配置されていると仮定します)。
CDN の利点は明らかです。(1) CDN ノードは、事業者間および地域間アクセスの問題を解決し、アクセス遅延が大幅に減少します。(2) ほとんどのリクエストは CDN エッジ ノードで完了し、CDN が再生します。迂回の役割を果たし、元のサイトの負荷を軽減します。
2. キャッシュとは何ですか?
この記事では、CDN の背後にある高レベルのアーキテクチャについては詳しく説明しません。また、CDN がグローバル トラフィック スケジュール戦略を実装する方法についても説明しません。この記事は、CDN のインストール後にデータがどのようにキャッシュされるかに焦点を当てています。キャッシュは、時間と空間を交換する普遍的な例です。余分なスペースを使用することで、より高速な速度を得ることができます。
まず、CDN に Web サイトが接続されていないときに、ユーザーのブラウザがサーバーとどのように対話するかを見てみましょう:
ユーザーが Web サイトを閲覧すると、ブラウザは Web サイト内の画像やその他のファイルのコピーをローカルに保存できます。 , そのため、ユーザーが再度 Web サイトにアクセスしたときに、ブラウザーがすべてのファイルをダウンロードする必要がなくなり、ダウンロード量が削減されるということは、ページの読み込み速度が向上することを意味します。
CDN のレイヤーが途中で追加された場合、ユーザーのブラウザとサーバー間の対話は次のようになります。
クライアントのブラウザは、まずローカル キャッシュの有効期限が切れているかどうかを確認し、有効期限が切れた場合は、クライアント ブラウザへのリクエストを開始します。 CDN エッジ ノードは、ユーザーが要求したデータのキャッシュの有効期限が切れているかどうかを検出し、有効期限が切れていない場合は、ユーザーの要求に直接応答します。その後、CDN は最新のデータを取得するために、ソース リクエストを発信元サイトに送信する必要もあります。 CDN の典型的なトポロジ図は次のとおりです:
CDN が存在するシナリオでは、データがクライアント (ブラウザー) キャッシュと CDN エッジ ノード キャッシュの 2 つの段階を経ていることがわかります。詳細な分析
2. クライアント (ブラウザ) キャッシュ
クライアント キャッシュの欠点
クライアント キャッシュにより、サーバー リクエストが削減され、ファイルの繰り返しロードが回避され、ユーザー エクスペリエンスが大幅に向上します。ただし、Web サイトが更新されると (CSS、JS、画像ファイルの置き換えなど)、古いバージョンのファイルがブラウザーのローカルに保存されたままになり、予期しない結果が発生します。
かつて、ページが読み込まれるときに、ページ上の要素の位置がふらつき、ボタンのクリックに失敗することがありました。フロントエンド GG は、「キャッシュはクリアされましたか?」と尋ねてから、Ctrl キーを押すのが習慣でした。 +F5、すべてOKです。しかし、ブラウザのアドレス バーで Enter キーを押すだけ、または F5 を押すだけでは問題が解決されない場合があります。これらの 3 つの異なる操作方法がブラウザのキャッシュの更新方法を決定することをご存知ですか?
ブラウザはローカル ファイルを使用するかサーバー上の新しいファイルを使用するかをどのように判断するのでしょうか?いくつかの判断方法をご紹介します。
ブラウザキャッシュポリシー
Expires
Expires:Sat, 24 Jan 2015 20:30:54 GMT
HTTP 応答メッセージで Expires が設定されている場合、Expires が接続を期限切れにする前にそれを回避します。サーバ。このとき、ブラウザは、手持ちの素材が有効期限切れかどうかを判断するだけで、ブラウザにリクエストを送信する必要はありません。
キャッシュ制御: max-age
Expires メソッドは非常に優れていますが、毎回正確な時間を計算する必要があります。 max-age タグを使用すると、有効期限の処理が簡単になります。この情報は 1 週間しか使用できないと言えば十分です。
Max-age は、次のように秒単位で測定されます:
Cache-Control:max-age=645672
指定されたページは 645672 秒 (7.47 日) で期限切れになります。
Last-Modified
現在のファイルバージョンをブラウザに通知するために、サーバーは最終変更時刻を含むタグを送信します。例:
Last-Modified:Tue, 06 Jan 2015 08:26:32 GMT
次のようにブラウズします。ブラウザは、受信したファイルの作成時間を認識します。以降のリクエストでは、ブラウザは次のルールに従って検証します。
1. ファイル jquery.min.js が必要です。 2015 年 1 月 6 日火曜日 08:26:32 GMT 以降に変更されている場合は、私に送ってください。
2. サーバー: (ファイルの変更時間を確認してください)
3. サーバー: このファイルはそれ以降変更されていません。すでに最新バージョンを持っています。
4. ブラウザ: わかりました。ユーザーに表示します。
この場合、サーバーは 304 応答ヘッダーのみを返すため、応答データの量が削減され、応答速度が向上します。 304 応答については、次を参照してください。
http://www.cnblogs.com/ziyunfei/archive/2012/11/17/2772729.html
下の図は、F5 を押して更新した後に 304 応答ヘッダーを返すページを示しています。ページ。
ETag
通常、変更時間によるファイルの比較は機能します。ただし、サーバーの時計が間違っている、サーバーの時計が変更されている、夏時間 DST の到着後にサーバー時間が時間内に更新されていないなどの特殊な状況では、ファイル バージョンを比較する際に問題が発生します。変更された時間。
ETag を使用すると、この問題を解決できます。 ETag はファイルの一意の識別子です。ハッシュやフィンガープリントと同様に、各ファイルには、ファイルが変更されるたびに変更される個別の署名があります。
サーバーはETagタグを返します:
ETag:”39001d-1762a-50bf790757e00”
次のアクセスシーケンスは次のとおりです:
- ブラウザ: jquery.min.js ファイルが必要です。文字列「39001d-1762a-50bf790757e00」に一致しないものはありますか?
- サーバー: (ETag を確認してください...)
- サーバー: やあ、ここにあるバージョンも「39001d-1762a-50bf790757e00」です。すでに最新バージョンです
- ブラウザ: OK、ローカル キャッシュを使用できます
Last-modified と同様に、ETag はファイル バージョンの比較の問題を解決します。 ETag のレベルが Last-Modified よりも高いだけです。
追加タグ キャッシュタグは機能を停止することはありませんが、すでにキャッシュされているものを制御する必要がある場合があります。
l キャッシュ制御: パブリックとは、キャッシュされたバージョンがプロキシ サーバーまたは他の中間サーバーによって認識できることを意味します。
l キャッシュ制御: プライベートとは、このファイルがユーザーごとに異なることを意味します。ユーザー自身のブラウザのみがキャッシュできます。パブリック プロキシ サーバーはキャッシュを許可しません。
l キャッシュ制御: no-cache は、ファイルの内容をキャッシュすべきではないことを意味します。同じ URL に対して対応するコンテンツが変わるため、これは検索やページめくりの結果で非常に役立ちます。
- ブラウザ キャッシュの更新
- アドレス バーに URL を入力して Enter キーを押すか、[Go] ボタンをクリックします
ブラウザはリクエストが最も少ない Web ページのデータを取得し、すべてのコンテンツに対してローカル キャッシュを直接使用します有効期限が切れていないため、ブラウザへのリクエストが減少します。したがって、Expires タグと max-age タグはこのメソッドでのみ有効です。
- F5 またはブラウザの更新ボタンを押してください。
ブラウザは必要なキャッシュ ネゴシエーションをリクエストに添付しますが、ブラウザはローカル キャッシュを直接使用することは許可されていません。Last-Modified と ETag を有効にすることはできます。期限切れの場合は無効です。
- Ctrl+F5 を押すか、Ctrl を押して更新ボタンをクリックします
この方法は、キャッシュを使用せずに強制的に更新し、常に新しいリクエストを開始します。
- CDN キャッシュ
- CDN キャッシュのデメリット
- CDN キャッシュ戦略
CDN エッジ ノードのキャッシュ戦略はサービス プロバイダーによって異なりますが、通常は http 標準プロトコルに従い、http 応答ヘッダーの Cache-control: max-age フィールドを通じて CDN エッジ ノードのデータ キャッシュ時間を設定します。
クライアントが CDN ノードにデータを要求すると、CDN ノードはキャッシュされたデータの有効期限が切れているかどうかを判断し、期限切れでない場合はキャッシュされたデータをクライアントに直接返します。元のサイトへの戻りリクエスト。元のサイトから最新のデータを取得し、ローカル キャッシュを更新して、最新のデータをクライアントに返します。
CDN サービス プロバイダーは通常、ファイルのサフィックスとディレクトリに基づいて CDN キャッシュ時間を指定するための複数のディメンションを提供し、より洗練されたキャッシュ管理をユーザーに提供します。
CDN キャッシュ時間は「戻り率」に直接影響します。 CDN キャッシュ時間が短い場合、CDN エッジ ノード上のデータが失敗することが多く、その結果頻繁にオリジンに戻り、オリジン サイトの負荷が増加し、CDN キャッシュ時間が長すぎるとアクセス遅延も増加します。 、データ更新が遅いという問題が発生します。開発者は、特定のデータ キャッシュ時間管理を実行するには、特定のビジネスを追加する必要があります。
CDN キャッシュの更新
CDN エッジ ノードは、ブラウザ Ctrl+F5 を強制的に更新してブラウザのローカル キャッシュを無効にするのと比較して、開発者は「キャッシュを更新」インターフェイスを使用して次の目的を達成できます。 CDN エッジ ノード キャッシュをクリアします。このようにして、開発者は「キャッシュの更新」機能を使用して、データの更新後に CDN ノード上のデータ キャッシュを強制的に期限切れにし、クライアントがアクセス時に最新のデータを確実に取得できるようにすることができます。
以上がCDN キャッシュについて話すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ブラウザはビデオをどのフォルダにキャッシュしますか? 私たちは毎日インターネット ブラウザを使用するときに、YouTube でミュージック ビデオを視聴したり、Netflix で映画を視聴したりするなど、さまざまなオンライン ビデオを視聴することがよくあります。これらのビデオは読み込みプロセス中にブラウザによってキャッシュされるため、将来再び再生するときにすぐに読み込むことができます。そこで問題は、これらのキャッシュされたビデオが実際にどのフォルダーに保存されるのかということです。ブラウザーが異なれば、キャッシュされたビデオ フォルダーは異なる場所に保存されます。以下に、いくつかの一般的なブラウザとそのブラウザを紹介します。

DNS (DomainNameSystem) は、ドメイン名を対応する IP アドレスに変換するためにインターネットで使用されるシステムです。 Linux システムでは、DNS キャッシュはドメイン名と IP アドレス間のマッピング関係をローカルに保存するメカニズムです。これにより、ドメイン名解決の速度が向上し、DNS サーバーの負担が軽減されます。 DNS キャッシュを使用すると、システムはその後同じドメイン名にアクセスするときに、毎回 DNS サーバーにクエリ要求を発行する必要がなく、IP アドレスを迅速に取得できるため、ネットワークのパフォーマンスと効率が向上します。この記事では、Linux で DNS キャッシュを表示および更新する方法、関連する詳細およびサンプル コードについて説明します。 DNS キャッシュの重要性 Linux システムでは、DNS キャッシュが重要な役割を果たします。その存在

Guava Cache の初心者ガイド: アプリケーションの高速化 Guava Cache は、アプリケーションのパフォーマンスを大幅に向上させることができる高性能のメモリ内キャッシュ ライブラリです。 LRU (最も最近使用されていないもの)、LFU (最も最近使用されていないもの)、TTL (生存時間) など、さまざまなキャッシュ戦略を提供します。 1. Guava キャッシュをインストールし、Guava キャッシュ ライブラリの依存関係をプロジェクトに追加します。 com.goog

タイトル: HTML ファイルのキャッシュ メカニズムとコード例 はじめに: Web ページを作成するときに、ブラウザーのキャッシュの問題に遭遇することがよくあります。この記事では、HTML ファイルのキャッシュ メカニズムを詳細に紹介し、読者がこのメカニズムをよりよく理解して適用できるように、いくつかの具体的なコード例を示します。 1. ブラウザのキャッシュ原理 ブラウザでは、Web ページにアクセスするたびに、まずキャッシュに Web ページのコピーがあるかどうかを確認します。存在する場合、Web ページのコンテンツはキャッシュから直接取得されます。これがブラウザー キャッシュの基本原理です。ブラウザキャッシュメカニズムの利点

ブラウザキャッシュビデオをエクスポートする方法 インターネットの急速な発展に伴い、ビデオは人々の日常生活に欠かせないものになりました。 Web を閲覧しているときに、保存または共有したいビデオ コンテンツに遭遇することがよくありますが、ビデオ ファイルがブラウザのキャッシュにのみ存在するため、ビデオ ファイルのソースが見つからないことがあります。では、ブラウザのキャッシュからビデオをエクスポートするにはどうすればよいでしょうか?この記事では、いくつかの一般的な方法を紹介します。まず、ブラウザキャッシュという概念を明確にする必要があります。ブラウザー キャッシュは、ユーザー エクスペリエンスを向上させるためにブラウザーによって使用されます。

PHPAPCu (php キャッシュの代替) は、PHP アプリケーションを高速化するオペコード キャッシュおよびデータ キャッシュ モジュールです。その可能性を最大限に活用するには、その高度な機能を理解することが重要です。 1. バッチ操作: APCu は、多数のキーと値のペアを同時に処理できるバッチ操作メソッドを提供します。これは、大規模なキャッシュのクリアまたは更新に役立ちます。 //キャッシュキーをバッチで取得 $values=apcu_fetch(["key1","key2","key3"]); //キャッシュキーをバッチでクリア apcu_delete(["key1","key2","key3"]) ;2 .キャッシュの有効期限を設定する: APCu を使用すると、キャッシュ項目の有効期限を設定して、指定した時間が経過すると自動的に期限切れになるようにできます。

PHP 開発では、キャッシュ メカニズムにより、頻繁にアクセスされるデータがメモリまたはディスクに一時的に保存され、データベース アクセスの数が削減され、パフォーマンスが向上します。キャッシュの種類には主にメモリ、ファイル、データベース キャッシュが含まれます。キャッシュは、組み込み関数またはサードパーティのライブラリ (cache_get() や Memcache など) を使用して PHP に実装できます。一般的な実用的なアプリケーションには、データベース クエリ結果をキャッシュしてクエリ パフォーマンスを最適化したり、ページ出力をキャッシュしてレンダリングを高速化したりすることが含まれます。キャッシュ メカニズムにより、Web サイトの応答速度が効果的に向上し、ユーザー エクスペリエンスが向上し、サーバーの負荷が軽減されます。

PHP キャッシュ テクノロジの探求: Web サイトのパフォーマンスを向上させる強力なツール、特定のコード サンプルが必要です はじめに: 今日のインターネットの急速な発展に伴い、Web サイトのパフォーマンスはユーザー エクスペリエンスと検索エンジンのランキングにとって非常に重要です。 PHP は一般的に使用されるプログラミング言語として Web サイト開発で広く使用されており、PHP Web サイトのパフォーマンスをいかに向上させるかが開発者にとって緊急の課題となっています。非常に重要なソリューションの 1 つは、PHP キャッシュ テクノロジを使用することです。この記事では、PHP キャッシュの概念と具体的なテクノロジについて説明し、読者の理解を助けるコード例を示します。
