1

2000 年の論文「データ エンジニアリングにおける経験則」では、次のルールが提案されています。

"有効期間内に再参照される可能性がある場合は、Web ページをキャッシュします。 "

これは今日でも適用されますか?帯域幅は安価で高速であり、Web サイトは動的であることが多いため、キャッシュ ヒットが少なくなります (そうでしょうか?)。Web サイトをキャッシュすることはまだ理にかなっていますか? もしそうなら、どのデータがキャッシュされますか? 写真や記事は想像できますが、個人の twitter サイトはどうでしょうか。また、記事についても、知りたいニュース速報がある可能性があるため、キャッシュ内のデータの有効期間は短いはずです。

この経験則は今でも有効で、実際にどのように使用されていますか?

4

4 に答える 4

2

私たちのコミュニティの他のメンバーがすでに言っているように、キャッシングは非常に重要なツールです。もちろん、サーバーの負荷と待ち時間を減らしたい場合))過去 2- 3週間:

まずLast-Modified、リクエストに応答して http ヘッダーを返すように実装できますIf-Modified-Since (またETag/If-None-Match、唯一の違いは、Last-Modified が日付を表すときに、Etag が何らかのハッシュ値を表すことです)。If-Modified-Since日付を比較するだけでLast-Modified、ページや画像などが古くなっている場合は200 OKステータスコードで返します。304 Not Modified画像が変更されていない場合は、ステータスのみを返します(画像はブラウザーのキャッシュから提供されます)。
この場合、クライアント (ブラウザ) に画像をキャッシュする必要があります。

たとえば、データベースクエリの数を減らしたい場合は、それらをサーバーにキャッシュすることもできます。または両方を使用できます: ServerAndClient.

2 つ目:過去 2 週間、私はこのアプローチに苦労していました)応答ヘッダーを永遠 (たとえば 1 年)
に設定し、クライアントに画像をキャッシュします。Expires画像が変更された場合は、新しい URL (ハッシュされた画像の最終書き込み日を含む) を作成します。

画像フォルダーを監視する Windows サービスを作成しました。画像が変更された場合、最終変更日がデータベースに書き込まれます。この画像の最終更新日を URL に追加します。

このアプローチの利点は、イメージが変更された場合にのみサーバーがヒットすることです。

たとえば、最初に説明したアプローチでは、ブラウザはサーバーにリクエストを送信して、独自のキャッシュから画像を取得する前に画像が最新かどうかを確認する必要があります。

3 番目のこと:Expires http ヘッダーを単独で (Last-Modifiedまたはを実装せずに)使用しないでくださいEtag。たとえば、クライアントに画像をキャッシュすると、期限が切れない限り、ブラウザーはキャッシュからこの画像を取得します。そのため、画像が変更された場合、期限が切れない限り、ユーザーには表示されません。

キャッシングに関する私の小さな経験があなたに役立つことを願っています:)

PSは可能な限りすべてをキャッシュします!

于 2013-03-02T21:22:14.080 に答える
2

キャッシングも今日では非常に重要です。したがって、サイトはより速く反応し、サーバーはより多くのクライアントを処理できます。

基本的に、css、js、画像などの静的なものはすべてクライアントにキャッシュさせる必要があります。ファイルをリロードする必要がある場合は、新しいクエリ文字列を追加できます。

私見は、有効期限を使用する最大のトリックです。ファイルの有効期限が切れるまで、クライアントはファイルを要求しません。etag は、動的コンテンツの変更を検出するのにも非常に役立ちます。

また、モバイル ネットワークは DSL や co に比べて非常に遅いことにも注意してください。

于 2013-03-01T20:03:37.630 に答える
1

キャッシングは、画像、CSS スタイルシート、Javascript コード ファイルなどの静的データに関連しています。キャッシュを使用すると、ヒットが繰り返される場合やサブページでページをより速くロードできるためです。また、静的な HTML ページについても同様ですが、ご指摘のとおり、多くのページが動的になり、HTTP ヘッダーを介して、キャッシュしてはならないことをアナウンスします。

于 2013-03-01T20:06:18.857 に答える
0

ええ、それは重要です...特に、最近ダウンしたWebサイトから情報を取得する方法を提供するためです

于 2013-03-01T20:05:21.047 に答える