0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

よわよわエンジニアはsessionとcookieの違いを理解したい

Posted at

sessionとcookieは何が違うんじゃい!
ログイン機能とか作るときにsessionを使うけど、cookieじゃ駄目なんですか?
正直今までよくわからずに使っていたので調べてみる。

ちょっと調べてみると以下のような違いがあるらしい。

1 2
cookie Webサーバーが発行してブラウザが保持するキーと値
session Webサーバー側で保持するキーと値

ふむ。sessionだとWebサーバー側に情報を保存してブラウザには情報を保持しないってことかな。
それじゃあsessionでサーバー上に情報を保存させたとして、再度サーバーにリクエストを送ったときサーバー上に保存した情報が自分のものだとどうやって証明するんだろう…

sessionはcookieありきのもの

そもそもsessionというのはユーザーによる一連の動作(例えばサイトにログインして買い物かごに商品を入れる・購入・ログアウトをするまで)のことを表すらしい。

sessionを開始するとセッションIDが発行されて、それがブラウザ上に保存される。
このセッションIDをもってサーバー上にセッションで保存した情報が自分のものだと証明することができるようだ。

そしてこのセッションIDをブラウザに保存する一番メジャーなのがcookieを使うこと。
cookieではなくsessionを使おう!っと思っても実はcookieも使われていたということか。

cookieでログイン機能を作ってはいけないのか?

ログイン機能を作るときに、cookieを使うとログインIDやパスワードをサーバーにリクエストを送信するたびに送ることになる。
これはセキュリティ上よろしくないためsessionを使うべき。

しかし、sessionを使ってもcookieに保存したセッションIDがリクエストを送るたびに送信されているわけで、セッションIDが盗まれたら同じことでは?と思えてしまう。
IDやパスワードをそのまま送信するよりはマシということだろうか…

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?