0

ExpiresCache-Controlヘッダーが機能するには、Webサーバーのクロックが同一である必要があると言われていますか?何故ですか?1秒または数分遅れることはありませんか?

キャッシュが1年間有効であると想定される場合、1つまたは一部のWebサーバーでは、数分または数時間の時差は問題になりませんか?

ドキュメントでは、次のように述べられています。

この[キャッシュ]が機能するためには、すべてのアプリケーションサーバーが同じタイムスタンプを返す必要があることに注意してください。これは、クロックを同期させる必要があることを意味します。それらの1つが同期しなくなった場合、ランダムに異なるタイムスタンプが表示され、キャッシュは機能しません。その場合、ブラウザは、変更されていなくても同じアセットを何度も要求します。Firefox用のライブHTTPヘッダーなどを使用して、キャッシュが実際に機能していることを確認できます。

4

2 に答える 2

0

これはRails固有であり、データを提供する複数のWebサーバーがある場合にのみ発生することに注意してください。

キャッシュがタイムスタンプを使用してデータを保存する場合、サーバーがタイムスタンプとは異なる場合、ファイルが常にあると見なされるため、キャッシュは常にそのうちの1つ(「古い」タイムスタンプを持つサーバー)で無効になります。最近更新されたため、リクエストはキャッシュミスと見なされます。

于 2010-07-21T00:20:16.153 に答える
0

すべてのホストでntpdを実行すると(実行ますね)、十分に近くなります。?1232285206これは、URLの最後にを生成するキャッシングコントローラーよりもヘッダーとは関係がありません。これはUnixエポックタイム(1970年1月1日00:00:00からの秒数)であるため、数秒以内であれば、キャッシュしても問題ないコンテンツには問題ありません。ntpdは通常、1/4秒以下の許容誤差を維持します。(複数のタイムサーバーに対する一連のntpdateテストで、私のコンピューターは.15秒を超えてオフになることはありませんでした。)

于 2010-07-21T01:22:13.183 に答える