現代の HTTP ルールでは、クエリ文字列があっても応答がキャッシュ不能になるわけではありません。/catalog?page=2 のような公開リソースは、意図する鮮度を直接示せます。

Cache-Control: public, max-age=60

これは公開コンテンツ向けの例示的なポリシーです。応答は引き続き他のキャッシュ可能性の要件を満たす必要があります。個人化された結果は、プロキシ運用者がヒット率を上げたいというだけで共有キャッシュを獲得すべきではありません。

クエリはキャッシュ キーで使われる対象 URI の一部のままです。ページ 2 とページ 3 は別々のリクエストです。URL を似た見た目にするためにクエリを削除すると、一方の結果を他方として配信してしまう可能性があり、結果が等価になるわけではありません。

クエリ URL に対するヒューリスティック鮮度に関する HTTP の古い制限は、実装が不十分であることが判明した後に削除されました。明示的な鮮度はキャッシュの推測に頼ることを避け、ローカル プロキシ ルールは特定の URL を引き続き除外できます。

通常の HTTPS CONNECT トラフィックでは、リソースとそのキャッシュ ポリシーが TLS の内側に残ります。トンネリング フォワード プロキシは、URL がクエリを使うというだけでは、それらのページのオブジェクト キャッシュを獲得しません。

関連記事