web-dev-qa-db-ja.com

HTML-キャッシュコントロールの最大経過時間

私は常に最新のウェブサイトのコンテンツをユーザーに提示すると同時に、高速にロードしたいと考えています。調査したところ、読み込みを高速化するためにキャッシュを使用することを提案している投稿を見つけました。

では、最新のコンテンツを表示するために、3日後にキャッシュを「上書き」するためにWebサイトに何を追加する必要がありますか?

19
Uli

これを行う方法は複数ありますが、キャッシュする必要があるものとしないものを正確に検討する必要があります。最大の速度向上は、HTML自体ではなく、アセット(css、画像、javascript)が確実にキャッシュされることによるものです。次に、さまざまな要因を確認する必要があります(これらのアセットが変更される頻度、ユーザーがファイルの新しいバージョンをダウンロードするように強制する方法を教えてください)。

多くの場合、サイトのリリースプロセスの一環として、新しいファイル(更新されたファイル)に新しいファイル名が付けられ、ユーザーのブラウザーにファイルを再ダウンロードさせますが、これは1つの方法にすぎません。

Apache mod_expireと、.htaccessファイルを使用してアセットの有効期限を設定する機能を確認する必要があります。

http://www.google.com/?q=Apache+cache+control+htaccess#q=Apache+cache+control+htaccess

11
calumbrodie

Cache-Controlヘッダーは、キャッシュの動作を制御するためにHTTP 1.1で使用されます。 max-ageディレクティブは、コンテンツが古くなるまでの最大経過時間(秒単位)を指定するために使用されます(つまり、コンテンツは一定期間変更されません)。したがって、コンテンツが3日間変更されないことがわかっている場合は、サーバーに次のHTTPヘッダーを追加する必要があります。

Cache-Control: max-age=259200

(259200 = 60秒x 60分x 24時間x 3日)

PHPでこれを行うには、次の行を出力に追加します。

header('Cache-Control: max-age=259200');

ヘッダー関数の詳細については、こちらをご覧ください。

17
james.garriss

前述のように、ExpiresとCache-Controlヘッダーは通常、情報の有効期間に関する情報を組み込むための最良の方法です。

クライアントは、イカ、ワニスなどのキャッシング機能を備えたこれらの情報プロキシを解釈する上で信頼性が非常に低いため、ほとんどの人がこのようなソリューションを好んでいます。静的コンテンツ(画像、スタイルシートなど)だけをキャッシュするか、動的に生成されたコンテンツもキャッシュするかどうかも検討する必要があります。

1
fyr

YSlowの推奨事項に従って 、Webサーバーを構成して、ExpiresまたはCache-Control HTTPヘッダーを応答に追加し、ユーザーエージェントが応答をキャッシュするようにすることができます。指定された期間。

0
Darin Dimitrov