2

私はウェブサイトを持っています

www.somesite2.comからすべての画像コンテンツを取得するwww.somesite1.com

現時点では、画像が表示されるたびに、絶対URLを使用して次のように取得します。

<img src="http://www.somesite2.com/images/myimage.jpg" />

したがって、ユーザーがコンテンツを求めてwww.somesite1.comにアクセスするたびに、www.somesite2.comは打撃を受けます。

おそらくhttpヘッダーなどを使用して、画像をキャッシュする賢い方法を探しています。ありがとう

4

4 に答える 4

4

最も簡単な答えは、HTTP Expiresヘッダーに遠い将来の値(たとえば10年)を設定することです。このように(理論的には)、何度もアクセスする場合は、ブラウザがその画像を再度要求してサーバーから大きな負荷をかけないようにする必要があります。もちろん、画像を更新したいときに画像のURLを変更するメカニズムを考え出す必要があります。ほとんどの人は、パスのどこかにビルド番号を追加することによって(またはクエリ文字列にビルド番号を追加することによって)これにアプローチします。

ここにパフォーマンス(Expiresヘッダーの使用を含む)に関するいくつかの良い情報があります:

http://developer.yahoo.com/performance/rules.html

私は個人的にこれらをサーバー側でキャッシュすることについて心配しません(私はそれらが動的に生成されていないと思います)。それらはディスクから直接提供されているので、とにかくオーバーヘッドは小さいはずです。静的コンテンツを提供するための別のマシンがあることを確認し、スループットの向上に役立つLighttpdやnginxなどの非常に軽量なWebサーバーを使用してください。

http://www.lighttpd.net/

http://nginx.net/

于 2009-02-05T08:52:23.950 に答える
1

あなたのウェブサイトが非常に人気がない限り、あなたはおそらく静的コンテンツのために2番目のサーバーを必要としないでしょう。

Apache HTTPを使用している場合は、mod_cacheをインストールできます。SquidCacheのインストールも検討できます。

Andy Humeにも同意しますが、2つ目のサーバーが必要な場合は、軽量に保ち、lighttpdやSquidなどを使用してください。

于 2009-02-06T16:04:15.497 に答える
0

画像は個別のhttpリクエストであるため、画像専用に個別のウェブサーバーを保持します。

于 2009-02-05T08:43:42.707 に答える
0

セットアップに問題はありません。完全に機能します。より適切に機能させるために何をする必要があるかを理解するには、ブラウザーがどのように機能するかを理解する必要があります。

最初に、www.somesite1.com から HTML ドキュメントを読み取ります。次に、それを読み取り、URL を探します。見つかったら、ダウンロードを開始します。

したがって、ブラウザの観点からは、サイト 1 と 2 の間に関係はありません。サイト 2 のキャッシュを改善したい場合は、サイト 1 を完全に無視できます。

これは、サイト 2 の Web サーバーに、正しいキャッシュ情報をブラウザーに送信するように指示する必要があることを意味します。たとえば、HEAD リクエストに応答させたり、画像の有効期間をヘッダー フィールドCache-Control で大きな値に設定したりします。

于 2009-02-05T09:04:00.120 に答える