Ruby on Rails(特にv3以降)のセッションライフサイクルについての私の理解は、リクエストの開始時に、リクエストごとにセッションが作成され、そのリクエストに既存のセッションCookieが含まれていない場合は新しいものになるということです。作成されます。それ以外の場合、セッションCookieは逆シリアル化され、セッションハッシュに保存されます。
もちろん、この目的は、CSRFなどの多くのセキュリティ機能をサポートします。
ただし、HTTPキャッシュサービスやVarnishなどのプロキシを使用するサイトでページをキャッシュする場合、ほとんどの構成で要求と応答の両方でこれらの(通常はすべての)Cookieが削除される傾向があるため、これは少し問題になります。終了(キャッシュは通常、一般化されたオーディエンスを対象としているため)。
Cookieの詳細が含まれるオブジェクトハッシュを作成するようにVarnishなどを設定できることは知っています。これにより、キャッシュされたデータがそのセッション(およびそのユーザー)にスコープされますが、これが完全に必要かどうか疑問に思います。
私は本質的にかなり「静的」なアプリケーションを持っています-コンテンツはデータベースからプルされ、キャッシュできるページにレンダリングされます-いくつかの要素(コメント数、「最近の」アイテムなど)がありますESIで追加されましたが、すべてのリクエストに対してRailsは新しいセッションをセットアップする傾向があり、ユーザーがすでにセッションを持っている場合、このようなものはキャッシュサーバーによって削除されます。
(既存の機能を介して、または機能を自分で構築することにより)開発者がセッションが必要なタイミングを制御できるようにすることが可能であり、それが指定されている場合にのみ、Cookieを使用した前後のセッションが可能かどうか疑問に思っています。初期化/逆シリアル化などが必要です。
それ、または私はこの問題について間違った方法で考えており、別の角度から問題に対処する必要があります...