タグ付けされた質問 「cache-control」

1
この応答がキャッシュされるのはなぜですか?
現在、サイトのindex.htmlにこれらのヘッダーが返されているクライアントがあります。 Accept-Ranges:バイト 接続:キープアライブ コンテンツエンコーディング:gzip コンテンツの長さ:3658 コンテンツタイプ:text / html 日付:2013年10月10日(木)07:36:27 GMT ETag: "4aa95e1-2ed2-4e721324728b7" キープアライブ:タイムアウト= 5、最大= 100 最終更新日:2013年9月24日火曜日13:34:30 GMT サーバー:Apache / 2.2.22 変化:Accept-Encoding、User-Agent 追加するExpiresかCache-Control、必要に応じて追加することをお勧めしますが、混乱します:Chromeはこのリソースをキャッシュし、キャッシュから使用します(リクエストをまったく送信しない)、数時間後でも(たとえば、コピーを再利用します)昨日の午後8時30分にキャッシュしました)。これは、Chromeコンソールの[ネットワーク]タブで非常に明確に確認できます。[ネットワーク]タブでは、リクエストが表示200 (OK)され、[ ステータス ]列と(from cache)[ サイズ ] 列に灰色で表示されます。(Chromeのキャッシュのデフォルトは変更していません。) 私は、仕様がユーザーエージェントがヘッダーからの方向の不在で彼ら自身の決定をすることを可能にすることを理解します。ここで何が起きているのですか?Chromeはそれが数日前に最後に変更されたことを確認し、(たとえば)最新ではないバージョンを自由に使用できますか?それとも私が見逃しているものがありますか?

4
CSSおよびJS URLをバージョン管理する最良の方法は何ですか?
Yahooの大いに注目されているサイトの高速化のベストプラクティスに従って、私たちは、将来のキャッシュ有効期限ヘッダーを使用してCDNから静的コンテンツを提供します。もちろん、これらの「静的」ファイルを時々更新する必要があるため、現在、ファイル名の一部としてインフィックスバージョンを追加します(ファイルの内容のSHA1合計に基づいて)。したがって: styles.min.css になる: styles.min.abcd1234.css ただし、バージョン管理されたファイルの管理は退屈になる可能性があり、GET引数表記がよりクリーンで優れているかどうか疑問に思っていました。 styles.min.css?v=abcd1234 どちらを使用しますか?考慮すべきブラウザまたはプロキシ/キャッシュ関連の考慮事項はありますか?

2
キャッシュコントロールのハードルールとファーストルールは何ですか?
告白:私が管理しているサイトには、主にサーバーのデフォルト構成に基づいてキャッシュ制御に関するさまざまなルールがあり、ページ速度とY-Slow Firefoxプラグインの推奨事項とGoogleのSpeed Tracerのネットワークリソースビューに基づいています。Cache-Controlは、何をするかによってプライベート/パブリックに設定されます。ETagの/ Last-Modifiedヘッダーは、Y-Slowが何か問題があることを示唆し、Amazonのファイルを手動でgzipするときにVary-Accept-Encodingが必要な場合にのみ変更されますCloudFront。 さまざまなオプションとそのオプションに関する資料を読むと、矛盾する情報、壊れたプロキシのルール、カーゴカルトの構成があるようです。上記の分析ツールによって提供される公式情報は、統一された戦略としてではなく、各トピックを個別に処理するため、まったくアクセスできません(技術の相互参照はありません)。 たとえば、速度解析ツールがETagを使用するサイトを、キャッシングを支援することを目的としている場合、ETagを使用しないサイトと同じと評価することは意味がないようです。 プラットフォームに依存しないキャッシュ制御戦略の厳格なルールは何ですか? 編集: リンク経由ジェフ・アトウッドの記事はすばらしい深さでのキャッシングについて説明します。 記録のために、ここには厳しい規則があります: ファイルがGZIPなどを使用して圧縮されている場合 -プロキシは「cache-control:private」を使用します。プロキシは、それをサポートしていないクライアントに圧縮バージョンを返す場合があります(ブラウザキャッシュはこのようにマークされたファイルを保持します)。また、「Vary:Accept-Encoding」を含めて、圧縮可能であると言うことを忘れないでください。 Last-ModifiedをETagと組み合わせて使用-ベルトとブレースの使用は両方のバリデータを提供しますが、ETagは変更時間だけではなくファイルの内容に基づいており、両方がすべてのベースをカバーします。注: AOLのPageTestには、何らかの理由でETagsに対する単純なアプローチがあります。同じコンテンツをホストするために複数のサーバーでApacheを使用している場合、実際に同じライブファイルシステムを使用していない限り、ETagsから暗黙的に宣言されたinodeをFileETagディレクティブから除外して削除します。 可能な限り「cache-control:public」を使用します -これは、ページの残りがHTTP認証などを必要とする場合でも、プロキシサーバー(およびブラウザーキャッシュ)がコンテンツを返すことを意味します。

1
cache-controlヘッダーを設定しないとどうなりますか?
cache-controlヘッダーを設定しないとどうなりますか?HTTPはクライアントが従うべきデフォルトの振る舞いを指定していますか、それともクライアントが決めるのですか? Chromeでは、cache-controlヘッダーのないJavascriptリクエストがと表示されることがあり200 (from disk cache)ます。Chromeはこれを最適化していますか? IEでは、それがとして表示されるのを見てきました304 (not modified)。 これをよりよく理解するにはどうすればよいですか?

2
キャッシュの有効期限の一般的な値として「29030400」秒が使用されるのはなぜですか?
静的ファイルのExpiresディレクティブで29030400が頻繁に使用されていることに気付きました。 この種のファイルは、最大1年間(少なくとも1か月)キャッシュすることをお勧めします。 私は計算しました:29030400秒= 336日 それは約1年から1か月を引いたものなので、推奨される間隔に完全に収まりますが、問題はなぜ正確に29030400なのかです。そして31536000秒= 365日ではありませんか?昔ランダムに設定された値のブラインドコピー/貼り付けだけですか?それとも別の説明がありますか?

2
Google Pagespeedは、キャッシュがすでに有効になっている場合にブラウザのキャッシュを利用するように指示します
Google Pagespeed Insightsはまだブラウザのキャッシュを有効にする必要があると教えてくれますが、何が欠けているのかわかりません。最適化を有効にしてcloudflareを使用しています。私はこのHTTPヘッダーをChrome開発者ツールに表示します: cache-control:public、max-age = 86400 キャッシングはすでに有効になっているようです!私も追加しました <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" /> </staticContent> 私のweb.configファイルで。 他に何をすべきか分かりません。ここにGoogleが私に与えるエラーがあります:
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.