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

5
HTTPステータスコード200(キャッシュ)とステータスコード304の違いは何ですか?
FirefoxのGoogle "Page Speed"プラグインを使用してWebサイトにアクセスしています。 ページ上のコンポーネントの一部がHTTPステータスとして示されています。 200 200(キャッシュ)304 Googleの「ページ速度」。 私が混乱しているのは、200(キャッシュ)と304の違いです。 ページを複数回更新しました(ただし、キャッシュをクリアしていません)と、favicon.icoといくつかの画像がstatus = 200(キャッシュ)であるのに対し、他の一部の画像はhttpステータス304であるようです。 なぜその違いがわかりません。 更新: Googleの「ページスピード」を使用して、私はのために、「200(キャッシュ)」を受信http://example.com/favicon.icoなどhttp://cdn.example.com/js/ga.js しかし、http ://cdn.example.com/js/combined.min.jsの httpステータス「304」を受け取ります 同じディレクトリ/ js /に2つのJavaScriptファイルがある理由がわかりません。1つはhttpステータス304を返し、もう1つは200(キャッシュ)ステータスコードを返します。


19
キャッシュされ、PHPで生成されたサムネイルの読み込みが遅い
質問パート A▉(100バウンティ、受賞) 主な質問は、このサイトをより速くロードする方法です。まず、これらの滝を読む必要がありました。ウォーターフォールの読み出し分析に関するご提案をありがとうございます。ここに示されているさまざまなウォーターフォールグラフから明らかなのは、主なボトルネックであるPHPによって生成されたサムネイルです。Davidの助言による、CDNからのプロトコルのないjqueryの読み込みは、サイトの全体的なボトルネックに答えずにサイト全体を3%だけ高速化しましたが、私の賞金を獲得しました。私の質問を明確にするための時間、そしてもう一つの賞金: 質問パート B▉(100バウンティ、受賞) 新しい焦点は、6つのjpg画像が持つ問題を解決することでした。これにより、読み込み遅延のほとんどが発生しています。これらの6つの画像は、PHPで生成されたサムネイルで、サイズはわずか3〜5 kbですが、読み込みが非常に遅くなります。さまざまなグラフの「最初のバイトまでの時間」に注目してください。問題は未解決のままでしたが、報奨金がジェームズに送られました。ジェームズは、RedBotが下線を引いたヘッダーエラーを修正しました:「If-Modified-Since条件付きリクエストがコンテンツ全体を変更せずに返しました。」。 質問パート C▉(私の最後の報奨金:250ポイント) 残念ながら、REdbot.orgヘッダーエラーでさえ修正された後、PHPで生成された画像による遅延はそのまま残りました。これらの小さなちっぽけな3〜5Kbのサムネイルは一体何を考えているのですか?そのすべてのヘッダー情報は、ロケットを月に送り返したりすることができます。すでに7か月間このボトルネックの問題に悩まされているため、このボトルネックに関する提案は高く評価され、可能な限りの回答として扱われます。よろしくお願いします。 [私のサイトの背景情報:CSSが一番上にあります。下部のJS(Jquery、JQuery UI、購入したメニューawm / menu.jsエンジン、タブjsエンジン、ビデオswfobject.js)2番目の画像の黒い線は、何をロードするかを示しています。怒っているロボットは私のペット「ZAM」です。彼は無害で、しばしば幸せです。] 負荷の滝:時系列 | http://webpagetest.org グループ化された並列ドメイン | http://webpagetest.org Site-Perfウォーターフォール | http://site-perf.com Pingdom Tools Waterfall | http://tools.pingdom.com GTmetrixウォーターフォール | http://gtmetrix.com

4
no-cacheとmust-revalidateの違い
RFC 2616から http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1 キャッシュなし no-cacheディレクティブでフィールド名が指定されていない場合、キャッシュは、オリジンサーバーでの再検証に成功せずに、後続の要求を満たすために応答を使用してはなりません(MUST NOT)。これにより、オリジンサーバーは、クライアントの要求に対して古い応答を返すように構成されたキャッシュによっても、キャッシュを防止できます。 したがって、すべての応答を再検証するようにエージェントに指示します。 これと比較して 再検証する必要があります キャッシュによって受信された応答にmust-revalidateディレクティブが存在する場合、そのキャッシュは、古くなってからエントリを使用してはならず、最初にオリジンサーバーで再検証せずに後続のリクエストに応答してはなりません(MUST NOT)。 そのため、古い応答を再検証するようにエージェントに指示します。 特にに関してno-cache、これは実際にどのようにユーザーエージェントがこのディレクティブを経験的に扱っているのですか? ポイント何no-cacheがあるかどうmust-revalidateとはmax-age? このコメントを参照してください: http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/ キャッシュなし このディレクティブはブラウザにページをキャッシュしないように指示しているように聞こえますが、微妙な違いがあります。RFCによると、「no-cache」ディレクティブは、キャッシュからページを提供する前にサーバーで再検証する必要があることをブラウザーに通知します。再検証は、アプリケーションが帯域幅を節約できるようにする優れた手法です。ブラウザがキャッシュしたページが変更されていない場合、サーバーはそれをブラウザに通知するだけで、ページはキャッシュから表示されます。したがって、ブラウザは(理論的には)キャッシュにページを保存しますが、サーバーで再検証した後でのみページを表示します。実際には、IEとFirefoxはno-cacheディレクティブを、ページをキャッシュしないようにブラウザーに指示するかのように扱い始めました。私たちはこの行動を約1年前から観察し始めました。 誰かがこれについてもっと公式なものを持っていますか? 更新 再検証が必要なディレクティブは、表現に対する要求の検証に失敗すると、黙って実行されない金融トランザクションなどの不正な操作が発生する可能性がある場合にのみ、サーバーで使用する必要があります。 それは今まで心に留めたことのないことです。RFCはmust-revalidateを軽く使用しないように言っています。問題は、Webサービスでは否定的な見方をして、未知のクライアントアプリにとって最悪の状態を想定する必要があることです。古いリソースは問題を引き起こす可能性があります。 そして、Last-ModifiedやETagsがないと、私が今検討した他の何かは、ブラウザがリソース全体を再びフェッチすることしかできません。ただし、ETagを使用すると、少なくともすべてのリクエストでChromeが再検証されるようです。これにより、リクエストに他のヘッダーが含まれていて、常に「常に再検証」が行われない限り、これらのディレクティブは正しく再検証できないため、これらのディレクティブはどちらも無効であるか、少なくとも名前が不適切です。 最後のポイントをもっと明確にしたいだけです。must-revalidateETagもLast-Modifiedも設定せずに含めるだけで、エージェントは、比較するためにサーバーに送信するものがないため、コンテンツを再度取得することしかできません。 ただし、私の経験的テストでは、ETagまたは変更されたヘッダーデータが応答に含まれている場合、must-revalidateヘッダーの存在に関係なく、エージェントは常に再検証を行うことが示されています。 したがって、ポイントはmust-revalidate、古くなったときに「バイパスキャッシュ」を強制することです。これは、ライフタイム/エージを設定した場合にのみ発生するため、must-revalidateエージまたは他のヘッダーのない応答に設定されている場合、実質的には次のようにno-cacheなります。応答はすぐに古くなったと見なされます。 -では、最後にギリの答えにマークを付けます!

4
Cache-Control:privateとは何ですか?
chesseng.herokuapp.comにアクセスすると、次のような応答ヘッダーが表示されます Cache-Control:private Connection:keep-alive Content-Encoding:gzip Content-Type:text/css Date:Tue, 16 Oct 2012 06:37:53 GMT Last-Modified:Tue, 16 Oct 2012 03:13:38 GMT Status:200 OK transfer-encoding:chunked Vary:Accept-Encoding X-Rack-Cache:miss 次に、ページを更新して取得します Cache-Control:private Connection:keep-alive Date:Tue, 16 Oct 2012 06:20:49 GMT Status:304 Not Modified X-Rack-Cache:miss キャッシングが機能しているようです。それがキャッシュで機能する場合、ExpiresとCache-Control:max-ageのポイントは何ですか。混乱を増すために、https://developers.google.com/speed/pagespeed/insights/でページをテストすると、「ブラウザーのキャッシュを利用する」ように指示されます。

2
AppCache(Symfony2)で最初の応答がプライベートである場合は問題ありませんか?
httpキャッシングを使用しようとしています。私のコントローラーでは、次のように応答を設定しています。 $response->setPublic(); $response->setMaxAge(120); $response->setSharedMaxAge(120); $response->setLastModified($lastModifiedAt); 開発モード 開発環境では、最初の応答は次のヘッダーを持つ200です。 cache-control:max-age=120, public, s-maxage=120 last-modified:Wed, 29 Feb 2012 19:00:00 GMT 次の2分間、すべての応答は次のヘッダーを持つ304です。 cache-control:max-age=120, public, s-maxage=120 これは基本的に私が期待していることです。 製品モード 製品モードでは、応答ヘッダーが異なります。app.phpでは、カーネルをAppCacheでラップしていることに注意してください。 最初の応答は、次のヘッダーを持つ200です。 cache-control:must-revalidate, no-cache, private last-modified:Thu, 01 Mar 2012 11:17:35 GMT したがって、これはキャッシュなしのプライベートレスポンスです。 次のリクエストはすべて、私が期待するものとほぼ同じです。次のヘッダーを持つ304: cache-control:max-age=120, public, s-maxage=120 心配する必要がありますか?予想される動作ですか? VarnishまたはAkamaiサーバーをその前に置くとどうなりますか? 少しデバッグを行ったところ、ヘッダーが最後に変更されたため、応答はプライベートであることがわかりました。HttpCacheカーネルはEsiResponseCacheStrategyを使用して、キャッシュされた応答を更新します(HttpCache :: handle()メソッド)。 if (HttpKernelInterface::MASTER_REQUEST === $type) { $this->esiCacheStrategy->update($response); } …

1
Cache-Controlでのプライベートとパブリック
IISでホストされているasp.netアプリケーションのパブリックとプライベートのキャッシュ制御の違いを示す例を教えてください。 私はMSDNで、違いは次のとおりであることを読みました: Public: Cache-Control:publicを設定して、クライアントおよび共有(プロキシ)キャッシュが応答をキャッシュできることを指定します。 プライベート:デフォルト値。Cache-Control:privateを設定して、応答がクライアントでのみキャッシュ可能であり、共有(プロキシサーバー)キャッシュではキャッシュできないことを指定します。 私はそれぞれの選択から長所と短所を完全に理解したかどうかはわかりません。いつ使用するかしないかの例は素晴らしいでしょう。 たとえば、同じアプリケーションをホストしている2つのWebサーバーがある場合はどうすればよいですか?プライベートまたはパブリックを選択した場合、注意することはありますか?

5
PHPサイトのブラウザキャッシュを防ぐ方法
私はphpサイトをクラウドサーバーで実行しています。新しいファイルcss、js、またはイメージを追加すると、ブラウザーはキャッシュに保存されている同じ古いjs、css、およびイメージファイルをロードします。 私のサイトには以下のようなdoctypeとmetaタグがあります <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)"> <meta http-equiv="Page-Exit" content="blendTrans(Duration=1.0)"> <meta http-equiv="Site-Enter" content="blendTrans(Duration=1.0)"> <meta http-equiv="Site-Exit" content="blendTrans(Duration=1.0)"> 上記のdoctypeとメタコードのため、新しいファイルではなく、ブラウザーにキャッシュされた同じファイルをロードしています

6
Angular 2サイトでブラウザのキャッシュを防ぐ方法は?
私たちは現在、クライアントの1人が毎日使用している定期的な更新を含む新しいプロジェクトに取り組んでいます。このプロジェクトはangular 2を使用して開発されており、私たちはキャッシュの問題に直面しています。つまり、クライアントはマシンの最新の変更を見ていません。 主にjsファイルのhtml / cssファイルは、それほど問題なく適切に更新されるようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.