ローカルファイルとCDN


13

Webサイトの読み込み時間が問題になる場合、JavaScriptまたはCSSファイルを参照するときに一般にどちらを使用するのが適切ですか?CDNを使用する方が良いでしょうか、それとも単にHTTPリクエストを追加するだけでしょうか?

回答:


11

CDNは、すべての静的ファイル(.css / .js / images)に使用する必要があります。

ただし、javascriptファイルやcssファイルには、一意のユーザー文字列やそのようなものを含むなど、動的な側面がある場合があります。この状況では、CDNサーバーは要求を送信するたびにオリジンサーバーに接続する必要があり、目的を達成できません。

CSSとJavaScriptがすべてのユーザーに対して静的である場合は、CDNを使用するのが適切です。独自のウェブサーバーではなくCDNからcssファイルとjsファイルのみを読み込むため、これにより余分なHTTPリクエストは発生しません(インラインコードを使用している場合を除く)。したがって、ユーザーのブラウザーがこれらの要求をサーバーからロードする代わりに、CDNを介してロードされます。これらの要求の送信先を変更するだけの追加の要求はありません(これも、現在インラインコードを使用していない限り)。

CDNを使用することによる他の利点は、CDNサーバーがエンドユーザーの近くにある可能性が最も高く、オリジンがロード時間に有利であることです。CDNサーバーは、静的コンテンツをWebサーバーに提供することにより、元のサーバーよりもはるかに高速に静的コンテンツを提供するように設定されている可能性があります。


2
CDNがある場合ではないに近いとEDNS-クライアントのサブネットを使用していないすべてでパフォーマンスを向上させることはないだろう。これは「その他の利点」ではなく、クライアントに近いほど、DOS保護/コンテンツの最適化を提供できる可能性があります(これらについては言及していません)が唯一の利点です。
symcbean

CDNを使用する主な利点は、ほとんどの場合、ユーザーが同じCDNを使用するWebサイトに既にアクセスしており、ブラウザーが既にそれをキャッシュしているため、ユーザーがWebサイトにアクセスしたときに、ブラウザーが要求を送信しないことです。
Offir Pe'er

3

CSS、JS、画像などの静的ファイルの配信には、CDNと従来のウェブホスティングを使用することが一般的に推奨されます。これは、ファイルがCDNのエッジサーバーにキャッシュされると、サイトの訪問者には、オリジンサーバーではなく、最も近い存在場所(PoP)から静的コンテンツが配信されるためです。

ほとんどの場合、これによりクライアントとサーバー間の距離が短くなるため、追加のHTTPリクエストを追加せずに読み込み時間を改善できます。これは、冗長性の増加、オリジンからの負荷の軽減など、他の領域でも役立ちます。


2

CDNが必要な場合は、CDNを使用します。ユーザーがグローバルで広大な地域に分散している場合、または独自のサーバーに保存したくないコンテンツがたくさんある場合は、CDNが役立ちます。サーバーがユーザーに近い場合、グローバルにコンテンツへのアクセスを高速化できます。多くのGBまたはテラバイトの静的データがあり、そのコンテンツにアクセスするための負荷が大きい場合は、CDNが役立ちます。

ただし、小規模なローカルサイトや負荷の軽いサイトでこのようなことを行う必要はほとんどなく、CDNは設定、操作、およびワークフローにキャッシュの問題などの複雑さを1つ追加するだけです。

多くの場合、CDNを使用しているのを目にするのは、CDNが他の理由ではなく、CDNを使用しているはずだと読んだためです。


いつも必要なわけではなく、実際に不必要な複雑さを追加することを指摘してくれてありがとう。私の場合、バックエンドアセットコンバイナーとS3 cdn、gulp、vcを設定した最小化されたファイルをキャッシュするlaravelベースのcmsを使用していて、いくつかのjsファイルに時間の無駄がありました。私はむしろDBキャッシングとスピードのための適切なコードに焦点を当てたい
Raja Khoury

1

CDNを使用することは、Webサイトの実装方法にもよりますが、Webサイトにとって負担であると同時にメリットでもあります。

良い点

  1. エンドユーザーの近くに保存された静的コンテンツ(読み込み時間の短縮)
  2. 追加のサブドメイン(cdn1.example.comcdn2.example.comなど)、彼らはいずれかの時点で同じ完全修飾ドメイン名から2つの同時のファイルへのファイルのダウンロードを制限するブラウザに固有の限界が、この補助します。この例を使用して、他の言葉では、あなたからHTMLにアクセスするwww.example.comと、すべての中から2つのファイルをダウンロードすることcdn1.example.comから、2つのファイル、cdn2.example.comから、そして2つのファイルcdn3.example.com1つのCDNサービスやソースにアクセスするすべての3つのCDNドメインを持ちます。

「ドメインごとに2つの同時ファイル」がどこから来るのかを参照できますか?それは確かにブラウザごとです。また、HTTP / 2の登場により、ドメインシャーディングが問題となっています。
Patrick Mevzek

0

CDNでのホスティングには多くの欠点があります。

  1. プライバシー。CDNでスクリプト/スタイルシート/フォントをホストするサイトにアクセスするたびに、CDNはあなたがサイトにアクセスしたことを認識します。
  2. オフライン時間。過去数週間、cloudflareなどは数時間かかりましたが、その読み込み時間は非常に遅いか、数分間オフラインでさえありました。最良のケースでは、サイトが醜く、最悪の場合は完全に使用できなくなり、競合他社にも問題が発生し、サイトがオンラインでなくても顧客を獲得できます。
  3. セキュリティ。CDNは危険にさらされる可能性があります(以前に発生しました)。最良のケースでは、サーバーがマルウェアを拡散し、最悪の場合、データが公開または削除されます。

それと比較して、利点は重要ではありません。

  1. ロードするデータが少ない:サイトごとに約100kbのスクリプトについて話します。低品質の1つの画像はそれ以上のことを説明します。1分あたり5.000.000回の訪問などの制限に達しているWebサイトがない場合、違いはありません。また、CDNを使用しても問題が解決されないため、ロードバランサーとより多くのWebサーバーを備えたより良いサーバー環境をセットアップする必要があります。
  2. CDNサーバーがクライアントに近いため、読み込み時間が短縮されます。EUからUSへの待ち時間がほぼすべての接続で約100ミリ秒である場合、CSSは50ミリ秒または100ミリ秒で読み込まれます。

本番環境でCDNを使用する理由はほとんどありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.