Railsのデフォルトのcookieを用いたセッション管理における、セッション情報の保管場所について

Railsでセッション管理を行う場合は、"session"メソッドを利用するのが基本になる。 Railsのデフォルト動作ではこの"session"メソッドを用いた際cookieを用いてセッション情報を管理する事は知っていたが、 具体的に何をしているかに関してはあまりよく理解していなかった。

調査をしてみてある程度理解できたので備忘録代わりに記載する。

概要

  • セッション情報はcookieに(暗号化の上で)埋め込まれて各クライアント(ブラウザ)で保持される
  • サーバ側ではセッションに関する情報は一切保持していない (セッション情報の作成(?)や暗号化はする)

らしい。(多分合ってる)

参考にしたサイト

https://railsguides.jp/security.html#%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8
https://oauth.jp/blog/2013/09/26/rails-session-cookie/
https://www.slideshare.net/carotene4035/sessionrailscookie-store

備考

セッションってサーバー側で保持されるようなイメージだったが、cookieってクライアント側で保持するよなぁという点がいまいち納得できていなかった。 cookieに入れる情報の作成&暗号化及び復号はサーバー(Rails)側で行うためセッション情報を管理しているのはサーバ側と表現するのも間違っていないかもしれない。 ただセッション情報の保管はクライアントがcookieを所持する形で行なっているということになるのかね。