0

S3からブラウザに画像を読み込む方法は、If-Modified-Sinceヘッダーを送信して変更した場合のみですか?S3の画像がIf-Modified-Sinceヘッダーで機能しない

ブラウザとS3ではデフォルトで有効にする必要がありますが、イメージが更新されるたびに読み込まれることをテストします。

答えて

3

Amazon S3はIf-Modified-Sinceヘッダーを既にサポートしていますが、関連するIf-None-Match(日付の代わりにETagを使用)もサポートしています。

したがって、画像が変更された場合にのみ画像を読み込む方法は、実際にはIf-Modified-Since、またはIf-None-Matchを使用することです。しかし、ブラウザに読み込むことについて話しているので、ブラウザのキャッシングを無効にするために何か不自由なことをしない限り、ほとんどのブラウザはすでにこれを実行しています。

サポートされているヘッダーの詳細については、http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html#RESTObjectGET-requests-request-headersを参照してください。

変更されていないにもかかわらずブラウザがS3から画像を読み込んでいる状況がありますか?もしそうなら、あなたはそれについてさらに詳しく知っていますか?ブラウザ、バージョン、および何かの症状を示すChrome network tab HAR fileのようなもの?

デフォルトでは、カスタム変更なしで両面で機能するはずです。私はちょうどS3に新鮮なPNG画像ファイルをアップロードすることによって複製しました。新しいブラウザウィンドウで、私は開発ツールを開き、ネットワークタブをロードしました。私は、 'キャッシュを無効にする'が解除されたことを確認し、ログを保存しておくことでログを複数のF5リフレッシュに保つようにしました。

イメージをロードしてから、F5キーを押して2回リロードしました。結果だった:あなたが見ることができるように、最初の負荷は200の状況とあった

Network tab screenshot

、他の要求は、返信用の304

+0

感謝を受けました。実際に私は最初のGoogleでこのすべての情報を読んだが、私は実装ガイドを見つけることができませんでした。私はphp/apacheからブラウザにHTMLを提供しています。S3の画像につながっているsrcパスのHTMLタグに画像タグがあります。そのため、ブラウザがS3に送るリクエストヘッダを処理していません。どうすればそれらを有効にできますか?または、デフォルトで有効になっている場合は、S3側でどのように有効にする必要がありますか(画像などのメタデータ)? – Kainax

+0

これはデフォルトで両側(クライアントとサーバー)で動作するはずです。私はあなたが見なければならないもののスクリーンショットを表示するコメントと、複製する方法の説明を編集しました。あなたはそれが* 304を返すのではないと思うと思うどんな症状が見られますか? –

+0

さらに考えてみましょう - 編集で概説されているように、ブラウザは依然としてIf-Modified-Sinceヘッダでs3へのリクエストを発行します。それは、S3がコンテンツなしで304で応答し、ブラウザがローカルコピーを使用するということだけです。あなたが実際に望むのは、ブラウザがS3に全くメッセージを送信しないようにするために、S3- –

関連する問題