web-dev-qa-db-ja.com

キャッシュ制御メカニズムのmax-ageとmax-staleの違いは何ですか

私はこれが簡単な質問であることを知っています。SO全体を検索したので、誰もこれを重複質問としてマークしないでしょう。だから私の質問は、Httpのキャッシュ制御メカニズムのmax-ageとmax-staleの違いは何ですか、それを here で読みましたが、少し複雑だと感じたので、誰かが説明できればこれについて ?それは大きな助けになるでしょう

22
droidev

から RFC 7234

「max-age」リクエストディレクティブは、クライアントが、指定された秒数を超える経過時間の応答を受け入れたくないことを示します。 max-staleリクエストディレクティブも存在しない限り、クライアントは古い応答を受け入れる用意がありません。

...

"max-stale"リクエストディレクティブは、フレッシュネスライフタイムを超えた応答をクライアントが受け入れる用意があることを示します。 max-staleに値が割り当てられている場合、クライアントは、フレッシュネスライフタイムが指定された秒数を超えていない応答を受け入れる用意があります。

つまり、max-ageは、応答が可能な最も古い限りオリジンサーバーからのCache-Controlがまだ新鮮です。 max-staleは、応答が古くなっていることがわかっていても、その秒数だけ古くなっている限り、それを受け入れることを示します。

古くなった応答の提供 に従って:

キャッシュは、古くなった応答で110 warn-code(セクション5.5.1を参照)を含む警告ヘッダーフィールドを生成する必要があります(SHOULD)。

そのため、max-staleを指定して、もはや最新ではない応答を受け取った場合、Warningヘッダーで通知されます。

22
Joe

これを試して、それは例で説明します

https://msdn.Microsoft.com/en-us/library/27w3sx5e(v = vs.110).aspx

3
Nuthan Kumar