PHPスクリプトから送信された画像を含むWebサイトがあります。ETag が送信され、次のリクエストでチェックされるたびに。それはうまくいきます。最初のページを開くと、すべてのファイルが 200 Ok でダウンロードされ、次のページでは 304 Not Modified でダウンロードされます。
しかし、httpサーバーから直接送信された一部のファイルは、ページを再度開いたときに変更されたイベントがチェックされていないことに気付きましたが、リロード中です(F5)。
If I open the page for the first time:
Files from web server: 200 Ok
Files from php script: 200 Ok
If I press F5:
Files from web server: 304 Not Modified
Files from php script: 304 Not Modified
If I reopen the page:
Files from web server: NO REQUEST
Files from php script: 304 Not Modified
私がやりたいことは、ブラウザがファイルが変更されたかどうかのチェックをスキップし、キャッシュされたバージョンを表示することです。そこで、http および php スクリプトがブラウザに送信している応答を確認しました。
http サーバーからの静的コンテンツ:
Accept-Ranges bytes
Connection keep-alive
Content-Length 22033
Content-Type image/png
Date Sat, 15 Mar 2014 10:42:06 GMT
Etag "523c1617-5611"
Last-Modified Fri, 20 Sep 2013 09:32:07 GMT
Server nginx
PHP スクリプトによって提供されるコンテンツ:
Connection keep-alive
Content-Type image/jpeg
Date Sat, 15 Mar 2014 10:45:16 GMT
Etag c4ca4238a0b923820dcc509a6f75849b
Server nginx
Transfer-Encoding chunked
したがって、違いは次のとおりです。
Accept-Ranges, Content-Length, Last-Modified, Transfer-Encoding
しかし、ブラウザが更新をチェックしないようにすることができると私が思う唯一のものは、Last-Modified です。したがって、Last-Modified を php スクリプトに追加すると、ブラウザは更新のチェックをスキップしますか?