Sessionはブラウザを閉じると消去されるように設計されたCookieであり、それをやり取りするメソッドだった: Railsチュートリアル備忘録 - RailsのSessionとは?
Abstract: RailsのSessionとは
Progateのころから気づけば隣にいたsession
Railsチュートリアルを進めていくと
セッションとかいう変数みたいなものと
それを補足するCookieを利用したログイン維持の仕組み
というモヤモヤした感じを抱いていたが実際は
どちらも
- HTMLをステートフルにするための仕組み
- デフォルトではどちらもCookieに保存される
ただし
- sessionはRailsが実装してくれていたのに対して, Cookieによるログイン維持は後から実装した
- sessionは期限あり(デフォルト?)に対して, 後者は永続的(意図的に設計した)
期限付きCookieを利用した
セッションというHTMLをステートフル化するための仕組みを
開発者が意図することなく実装してくれていたのがRailにおけるsessionメソッドということかと
備忘録: RailsのSessionとは
本来HTMLはステートレスであり、連続性保続性がない
一瞬でわかるステートレス
DIVE INTO CODE | ログイン情報保持について学ぼう
SessionはステートレスなHTMLを、ステートフルにするための仕組み
そっか、Cookieみたいな仕組みか
Railsチュートリアルの 8章でやりました
と思ったら、
そもそもRailsはデフォルトでsessionをCookieに保存しているとのこと
Chromeのデベロッパーツールで確認してみたところ
Railsチュートリアルのsample_app用と思われる_sample_app_session
があります
さらにその有効期限は**”ブラウザ セッションの終了時”**となっており
Railsチュートリアルで刷り込まれた儚い感じの所以はこれでした
Railsにおけるsession
は?
session
は変数ではなくメソッドとのこと
rails new sample_app
のプロセスで自動的に生成されていたので
ものすごく当たり前のように使えていたと理解した
たとえば、Rails がインストールされた状態でrails new hogeすると Rails アプリケーションができあがって、hogeディレクトリ内でrails g controller sessionsすると ApplicationController を継承した SessionsController が生成されますが、はじめからsession[:hoge]といった書き方で session を利用することができます。Rails の session を完全に理解した - Qiita
もう少し簡単にRailsのsessionの実態を理解するのにこちらを参考にしました
【Rails】Sessionの使い方について - Qiita