Cache-Control: max-age
・Cache-Control ヘッダー内の max-age ディレクティブは、リソースの有効期限を秒単位で指定します。リソースがキャッシュされてから指定された秒数が経過すると、キャッシュが期限切れとなります。max-age が 0 の場合、リソースはキャッシュされていても即座に期限切れとなり、常にリソースの最新のバージョンを取得する必要があります。
・max-age は秒数を使用します。
・max-age は、リソースがキャッシュされた後、一定時間が経過すると期限切れとなるため、時刻同期の問題を回避します。
・HTTP/1.1 では Cache-Control に経過時間を指定する max-age が採用されました。
Expires:
・Expires ヘッダーは、リソースの有効期限を特定の日時として設定します。この日時は、リソースがキャッシュされた後、その日時までの間はキャッシュが有効であり、その日時を過ぎるとキャッシュが期限切れとなります。ブラウザやプロキシは、この日時を参照して、リソースが有効かどうかを確認します。
・Expires は特定の日時を使用します。
・Expires は、ブラウザやプロキシがキャッシュの有効性を確認するために日時を参照します。
・HTTP/1.0 では、freshは Expires ヘッダーを使用して指定していました。
優先順位
一般的には、Cache-Control ヘッダー内の max-age ディレクティブがより優先されます。これは、Expires が特定の日時を使用するため、時刻同期の問題が発生しやすく、max-age がより柔軟で信頼性が高いためです。
参考サイト