なぜ静的ファイル(CSS、画像、JavaScript、ECC)をサブドメインに挿入するのですか?


29

なぜそんなに多くの大小のサイトが、media.example.comまたはのようなサブドメインに静的ファイル(CSS、画像、JavaScript、ECC)を挿入するのs2.static.example.comですか?

利点は何ですか?なぜディレクトリだけではないのexample.com/media/ですか?

回答:


24

少なくとも3つの考えられる(良い)理由があります。

  • 別のマシンを使用して静的コンテンツを提供する
    • CDNを含める
  • 別のWebサーバーを使用して静的コンテンツを提供する
    • より軽量で高速なもの
    • 静的コンテンツを提供するための完全なPHP / .NET / JAVAサーバーは不要です!
  • 別のドメイン名を使用すると、メインドメインで使用されるCookieを持たないようになります

正しく覚えていれば、それがStackOverflowで行われます


15

私が考える主な理由は、クッキーのためです。

Cookieはすべてのリクエストとともに送信されます。たとえば、2kbのCookieデータがあり、ページに20個の画像をロードするとします。

それは余分な40kbのデータであり、それをあなたが1か月に持っているページビューの数で掛けると、あなたは何か無駄に帯域幅が失われ、帯域幅が無料ではないことに驚くかもしれません...

また、トップレベルドメインに設定されたCookieは、任意のサブドメインに対して行われたすべてのリクエストに送信されます。そのような場合、新しいドメインを購入して、そこでCookieのないドメインで静的コンポーネントをホストすることをお勧めします

たとえば、StackOverflowの使用sstatic.net、Yahooの使用yimg.com、YouTubeの使用ytimg.com、Amazonの使用images-amazon.comなど。

これを見てください:


8

上記の回答の一部に追加するには:一部のWebブラウザーは、任意のドメインから同時に2つのファイルしかダウンロードできません。

異なるホスト名(または名前- a.domainb.domainなどc.domain)から静的コンテンツを提供すると、これらの古いブラウザーはより多くのファイルを並行してダウンロードできます。


2

...コンポーネントにCookieのないドメインを使用します。

ブラウザーが静的イメージを要求し、要求とともにCookieを送信すると、サーバーはそれらのCookieを使用しません。したがって、正当な理由もなくネットワークトラフィックを作成するだけです。Cookieのないリクエストで静的コンポーネントがリクエストされていることを確認する必要があります。サブドメインを作成し、すべての静的コンポーネントをそこでホストします。

このアドバイスは、Webサイトの高速化に関する Yahooのベストプラクティスに基づいています


0

HTTPリクエストが小さくなり、サーバーが高速に実行され、リクエストされたファイルが非常に短い時間で渡されるため、最終的にページの読み込みが最速になります。


これは、他の回答がまだ言っていないことを追加しません。リクエストが小さい理由(Cookieがないため)さえも言わないので、この答えは他の多くのものよりも悪いです。
スティーブンオステルミラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.