はじめに
備忘録です
Cookieの有効期限の違い
Cookieを保存する際は有効期限を設定できるのですが、設定はオプションです。
有効期限をつけた場合とつけない場合の違いを見てみます。
Cookieに有効期限をつけない場合
Cookieは検証ツール → Application → Cookiesで確認可能です。
有効期限を設定しない場合、ExpiresにはSession
と記載されます。
有効期限を設定しないCookieは特別にSession Cookie
と呼ばれるそうです。
有効期限はブラウザを閉じるまでです。
注意点はタブを閉じても削除はされない点です。 また、ブラウザをリロードしても削除されません。
有効期限を設定した場合
有効期限を設定した場合、Expiresには有効期限が表示されます。
有効期限内はブラウザを閉じても、リロードしてもCookieは保持され続けます。
有効期限が切れた場合、ブラウザを終了したら削除されるのはもちろん、画面のリロードでも破棄されます。
おわりに
今回の検証を行った動機はRailsのsessionやcookiesといったメソッドを利用している際に、cookieの保存方法に何か違いはあるのだろうか。という疑問が生じたからです。
Railsのsessionメソッドでcookieに保存されるsession_idは、なぜブラウザ閉じたら勝手に消えるのだろう。と考えていたのですが、単に有効期限を設定せずにcookieに対して値を保存すると、デフォルトでそうなるブラウザ側の仕様だったのです。このことから、cookieメソッドで保存した場合でも有効期限を設定しない場合同じ挙動になることを理解できました。