問題タブ [cache-control]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - 指定されていない場合、キャッシュされた静的ファイルはいつ期限切れになりますか?
IIS6 では、[コンテンツの有効期限を有効にする] が有効になっていない場合、キャッシュ関連のヘッダーまたは有効期限のヘッダーが応答と共に送信されないことに気付きました。ただし、css ファイルなどの静的コンテンツは、その後のアクセスで適切に 304 ステータスを返します。
何も指定されていない場合、このコンテンツの有効期限はいつですか? ブラウザ依存ですか?
http - キャッシュ制御: プライベートおよびパブリック
サーバーが を返した場合、http クライアントは何をすべきCache-Control: private, public
ですか?
private
をオーバーライドする必要があると感じていますpublic
が、RFC で確認を見つけることができません ( MUST
inprivate
とMAY
in以外public
)。
ruby-on-rails - CSV のダウンロードは Internet Explorer で最初の試行で失敗し、その後の試行で機能します
これはあまりにも長い間私を失望させてきました..
以下に掲載されているのは、Rails 3 コントローラーです。
初めて Internet Explorer でアクセスしようとすると、ダウンロード プロンプトが失敗し、「ダウンロードできません」というメッセージが表示されます。
直後に同じ URL にアクセスしようとすると、ダウンロード プロンプトが正常に機能します。
いずれにせよ、Cache-Control ヘッダーも適切に送信されていません。Rack Response に特定の値を提供していますが、Cache-Control は常に「Cache-Control: no-cache」として返されます。ただし、提供された他のヘッダー値は正しく送信されています。これは別の質問かもしれませんが、とにかく私を怒らせます。
以下のサンプルは、実際のシステムがクライアント データをどのように処理するかを模したものです。CSV が開始され、クライアントにストリーミングされます。CSV 生成が完了するまでの長い待ち時間を避けるために、ダウンロードはプログレッシブです。これらのファイルは 20 ~ 30 MB 以上になる可能性があるため、ダウンロードが開始されるまで数分待つことは望ましくありません。
これは、他のすべてのブラウザー (firefox、safari など) で機能しているようです。
http - 「Cache-Control: no-cache, must-revalidate」で「must-revalidate」を使用する必要性
よく使う
また
仕様によるmust-revalidate
とmax-stale
...(サーバーの問題max-stale
?)
したがって、通常の Web サーバー、Apache、または Mongrels を使用する Rails の場合、通常は存在しないと思いますmax-stale
ので、must-revalidate
必要ありませんか?
html - img タグに有効期限を追加するにはどうすればよいですか?
ページのパフォーマンスを向上させるために、Page Speed Firebug 拡張機能を使用しています。私は画像の多いページを持っており、それが行った提案の1つはこれです:
ブラウザのキャッシュを活用する 次のキャッシュ可能なリソースは、有効期間が短いです。次のリソースについて、少なくとも 1 週間後の有効期限を指定します。
ページ全体に Expires または Cache-Control ヘッダーを設定できることは知っていますが、特定の要素に有効期限を追加するにはどうすればよいですか? それは可能ですか、それともページ速度が示唆していることを誤解していますか?
apache - HTTP ヘッダーがキャッシュされたコンテンツのヘッダーと一致することを確認するための Squid 構成
次のようなクラウド設定があります。
SSL をサポートするページとサポートしないページがあります。perlbal は SSL をラップ解除するため、perlbal 層を超えるものはすべて、暗号化されていない HTTP 経由のリクエストのみを処理しますX-Forwarded-Proto
が、SSL が使用されているかどうかをアプリケーションが認識できるようにヘッダーを追加します。
要求が HTTP 経由でアプリケーション (Apache) にヒットした場合、その特定のページで SSL が必要な場合、HTTPS にリダイレクトされます。
安全なリソースのリクエストがアプリケーションに到達し、アプリケーションが を送信するCache-Control: public
と、squid はそのコンテンツを正しくキャッシュします。問題は、ユーザーがキャッシュされたリソースの HTTP バージョンにアクセスしようとすると、squid はそれをキャッシュ HIT として処理し、HTTP 経由でキャッシュされたリソースを返します。 -Forwarded-Proto が元のリクエストと一致しません。
これはどのように行われますか?私たちのアプリケーションは以下を送信します:
これに関する記事やドキュメントを見つけるのに苦労しています。この Vary ヘッダーは他の人が提案しているようですが、機能していません。Squid は、X-Forwarded-Proto ヘッダーが SSL を示しているかどうかに関係なく、キャッシュされたコンテンツを提供します。
php - PHP キャッシュ制御 - ブラウザから同じ URL への接続を回避することは可能ですか?
最初の応答ヘッダーが適切に設定されていれば、ブラウザーからの接続をまったく回避することは可能ですか?
これをセットアップしようとしましたが、とにかくリクエストがサーバーに到達しています。
私はこれを見つけました:
Expires ヘッダーには、実装が簡単であるという利点があります。ただし、ほとんどの場合、非常に組織化された人でない限り、サイトの特定のページがいつ更新されるかを正確に知ることはできません。ブラウザーはページの有効期限が切れた後にのみサーバーに接続するため、キャッシュしたページが古くなっていることをブラウザーに伝える方法はありません。さらに、ブラウザがキャッシュされたページを要求したときにサーバーと通信しないため、Web サイトにアクセスするトラフィックに関する知識も失われます。
問題は、上記の Expires ヘッダーが機能しないのはなぜですか?
** リクエスト ヘッダー **
** 応答ヘッダー **
caching - ブラウザにコンテンツが有効であると想定させたり、キャッシュからコンテンツを提供したりできますか? 304 の排除
クライアント(ブラウザ)が次のようになるように、ヘッダーの組み合わせを提供するようにApacheを設定することは可能ですか?
- コンテンツが有効であるとフラグ付けされていることを確認します (たとえば、画像の有効期限は 10 年後です)。
- キャッシュにコンテンツがあります
- サーバーに「そのコンテンツは有効ですか」と尋ねません-常にhttp 304ステータスを取得するため
基本的に、ブラウザに「その画像が有効かどうかをサーバーに尋ねないでください。キャッシュに画像がある場合は、有効で例外はありません!」と伝えることはできますか?
php - ページキャッシュ理論-これは機能しますか?
自分のサイトでブラウザのキャッシュを設定したいのですが。問題は、キャッシュがゲスト専用であり、ログインしているユーザーには適用されないことです。ユーザーのログインステータスに基づいて異なるヘッダーをスローできることは知っていますが、キャッシュはそれをどのように処理しますか?ゲストがユーザーのコンテンツを見るリスクを冒しますか?
アップデート
私が話しているのは、すべてのゲストに最終変更されたヘッダーをスローし、ログインしているすべてのユーザーに新しいページを強制する場合です。これはあまり役に立たないと思います...すべてのゲストがプロキシキャッシュを共有でき、すべてのメンバーが新しいページを使い続けることができればいいのですが、それはうまくいかないと思います。
@Victorと@klausbyskovの両方がどのように彼らの応答に+1を持っているのか、彼らは反対のことを言っているように見えます。
php - XML ファイルを削除できません
バックグラウンド:
私の Web ページは、AJAX/jQuery を介して XML ファイルからエントリを読み込み、それらを表示します (正常に動作します)。
ページには、AJAX/jQuery 経由で XML ファイルに書き込む PHP ファイルに送信するフォームもあり、AJAX/jQuery 経由で XML エントリをリロードして表示します (正常に動作します)。
次の奇妙な問題があります。
FileZilla を使用して XML ファイルを削除するか、ローカル マシンからコピーをアップロードして XML ファイルを上書きしようとしても、自分のページを見ているときにエントリがまったく変更されません。実際、XML ファイルを新しいコピーで上書きした場合、アドレス バーでhttp://mysite.com/myxmlfile.xmlのように移動すると、新しいコピーが表示されますが、XML を表示するページでは古いエントリ (ファイルが上書き/削除されていないなど) は引き続き表示されます。
混乱している!
これが私のPHPファイルです:
これが私のJSファイルです: