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