リダイレクトキャッシュとは、ブラウザや CDN がリダイレクト応答 (3xx レスポンス) を保存し、次回以降のアクセス時にオリジンサーバーへ問い合わせずにリダイレクト先へ直接遷移する仕組みである。短縮 URL サービスにおいては、パフォーマンスとクリック計測の両立を左右する重要な設計要素となる。
HTTP の仕様上、301 (Moved Permanently) はブラウザにキャッシュされやすく、一度キャッシュされると以降のアクセスはオリジンサーバーを経由しない。これによりレイテンシは低減するが、短縮 URL サービス側でクリックを計測できなくなる。一方、302 (Found) や 307 (Temporary Redirect) はデフォルトではキャッシュされないため、毎回オリジンを経由し、正確なクリック計測が可能である。
Cache-Control ヘッダーの設計が鍵を握る。private, max-age=0 を指定すればブラウザキャッシュを無効化でき、計測精度を維持できる。逆に、計測が不要なリダイレクトには public, max-age=3600 のように TTL を設定し、CDN レイヤーでキャッシュさせることでオリジンの負荷を大幅に軽減できる。
CDN でのリダイレクトキャッシュも考慮が必要である。CloudFront や Fastly はリダイレクト応答をエッジにキャッシュできるが、キャッシュされた状態ではオリジンにリクエストが到達しないため、クリック計測はエッジログに依存することになる。
短縮 URL サービスの設計では、リダイレクトキャッシュの挙動を正確に理解し、計測精度とパフォーマンスのトレードオフを意識した Cache-Control 設計が不可欠である。用途に応じて 301 と 302 を使い分け、キャッシュ TTL を適切に制御することが運用の要となる。