誰かがHTTPキャッシングの質問を手伝ってくれませんか?
「Expires」と「Cache-Control:max-age」リクエストヘッダーを設定すると、ブラウザはmax-ageが経過するまでGETリクエストを作成しないと思いましたか?
私のサーバーは多くの条件付きGET要求を認識しており、304で応答します。ただし、可能であればこれらの条件付きGETを削除し、ブラウザーがリソースの有効期限が切れたと判断した場合にのみリソースを要求するようにします。
Chromeの開発者ツールから取得した詳細は次のとおりです。
Request URL:http://localhost:8080/img/branding.gif
Request Method:GET
Status Code:304 Not Modified
リクエストヘッダー:
Cache-Control:max-age=0
If-Modified-Since:Thu, 22 Jul 2010 10:54:34 GMT
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
応答ヘッダー:
Cache-Control:max-age=2246400, s-maxage=0
Connection:Keep-Alive
Content-Location:/img/branding.gif
Content-Type:image/gif
Date:Fri, 23 Jul 2010 15:06:10 GMT
Expires:Fri, 07 Jan 2011 15:06:10 GMT
Keep-Alive:timeout=15, max=100
Last-Modified:Thu, 22 Jul 2010 10:54:34 GMT
Pragma:cache
Server:Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)
Javaコードのフィルターにキャッシュヘッダーを設定しました。コードはOracleのOC4Jで実行されています。
また、これをHTTPS経由で実行したいと思います。同じヘッダーを使用してもHTTPSでも機能しますか?
前もって感謝します。
last-ModifiedヘッダーとETagヘッダーを削除すると、If-Modified-SinceリクエストとIf-None-Matchリクエストとそれらの304 Not Modified Responseが完全に削除されるため、Expiresヘッダーが新しいことを示すまで、ファイルは更新をチェックせずにキャッシュされたままになります。コンテンツが利用可能です。
ソース: http://www.askapache.com/htaccess/Apache-speed-last-modified.html
「Expires」と「Cache-Control:max-age」リクエストヘッダーを設定した場合、ブラウザはmax-ageが経過するまでGETリクエストを作成しないと思いましたか?
問題は何が起こるかです後 max-ageが期限切れになりました。次に、ブラウザがコンテンツへの参照を確認するたびに、そしてWebサーバーが変更されていない304で応答するたびに、コンテンツを要求するという厄介なサイクルに入ります。一部のブラウザは、ファイルが同じページに表示されるたびに尋ねることさえあります!リクエストにかかる時間の大部分は、TCPハンドシェイクとHTTPヘッダーのラウンドトリップです-したがって、(ほぼ)キャッシュを提供したため、ページがさらに遅くなることがよくあります詳細:SSLを使用すると、サーバーへの往復が少なくとも1回余分に発生するため、効果はさらに悪化します。
仕様のgetout句は、Webサーバーが元のファイルに新しいキャッシュ命令を提供することで条件付きリクエストに応答できることですが、実際にはこれを行うのはかなり難しい場合があります。
Apache 2.0以降の場合は、mod_headersを使用してリクエストの条件部分を削除することで問題を解決できます(リクエストヘッダーのif-modified-sinceおよびif-none-match行を削除します)。 1.3以前の場合は、N日ごとにファイルにアクセスするcronジョブを使用することで回避できます(Nはデフォルトのキャッシュ時間よりわずかに短い)。
また、これをHTTPS経由で実行したいと思います。同じヘッダーを使用してもHTTPSでも機能しますか?
あなたが示した例は非SSLだと思います。はい、この方法は非SSLでも機能しますが、ブラウザのキープアライブに注意してください(Microsoft以外のWebサーバーは、キープアライブとSSL接続を介して通信しようとすると、結び目が絡まりますが、パフォーマンスは大幅に向上します) 。
C。