5

誰かがキャッシングについてこの声明を明確にすることができますか?

https://developers.google.com/speed/docs/best-practices/cachingによると

と の両方を指定するか、または と のExpires両方を指定することは冗長です。Cache-Control: max-ageLast-ModifiedETag

その後、それは言う

フィンガープリンティング メカニズムにより、サーバーはExpiresヘッダーをリクエスト日のちょうど 1 年前に設定できます。Last-Modifiedファイルが最後に変更された日付へのヘッダー。とCache-Control: max-ageヘッダーへ3153600

この後者のステートメントは、前のステートメントに反します。 と の両方を設定しないことについてExpiresですCache-Control

最初のステートメントは標準で、2 番目のステートメントは例外ですか? それとも、このドキュメントは単に独自の推奨事項に反していますか? 何が提案されていますか?

ありがとう。

4

2 に答える 2

13

Http の [Cache-Control:max-age] と [Expires] は同じことを行っており、それが重複している理由です。しかし、それらの間にはまだ大きな違いがいくつかあります。[Cache-Control] は http/1.1 標準で、Expires は http/1.0 標準です。クライアント ブラウザが http/1.1 をサポートしていない場合、Cache-Control は無視されます。これが両方を使用できる理由です。

両方を使用する場合は、[Cache-Control] が優先されます。詳細については、 http ://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3 をご覧ください。

于 2013-07-30T08:42:05.273 に答える
2

良い...

[Expires] ヘッダーと[Max-Age] ヘッダーはどちらも同じことを行うため (キャッシュの最大期間を設定する)、実際には両方を指定する必要がないため、最初のステートメントは正しいと言えます。

[Last Modify] と [Etag] についても同じことが言えます。どちらもアドレスの鮮度です。

後で示す例では [Expires] ヘッダーと [Max-Age] ヘッダーの両方を使用しているため、混乱があるように見えることに同意します。

一見すると、これは何らかのドキュメント エラーのように見えます。

それでも、 [Expires] と [Max-Age] の両方を使用する必要はありません、同じ日付を指している限り、両方を使用できることを覚えておく必要があります-例のように提供。

要約する:

最初のステートメントは、冗長性について述べています (これは必ずしも「悪い」というわけではなく、「単に」無駄になる可能性があります)。後で示す例は、最適化されていませんが、問題は発生しません。

2 つのヘッダーを使用して異なる有効期限を設定しない限り、問題ありません。

于 2012-10-02T14:50:14.573 に答える