max-age
とs-max-age
がわかっていなかったので調査
max-age
max-age
はprivateキャッシュ・publicキャッシュ向けのキャッシュの寿命を指定するディレクティブ
例えば、Cache-Control: max-age=1000の場合、中継サーバ(CDNなど)もブラウザも1000秒キャッシュする
s-max-age
s-maxage
はpublicキャッシュ向けにキャッシュの寿命を指定するディレクティブ
ただし、ブラウザには関係ない
例えば、Cache-Control: s-maxage=1000の場合、CDNなどは1000秒間は自分のキャッシュからクライアントにレスポンスを返すが、クライアントはキャッシュを作らないので都度問い合わせることになる
結論
s-maxage
はCache-Control: public, max-age=xxxx
がついているなら基本いらない
参考
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Cache-Control