Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

クッキーとセッションの違い(PHP・Railsでの実装例含む)

なぜクッキー・セッションが必要か

複数のウェブページの間で情報を維持するため。
HTTPはクライアントからの要求に対し、サーバーがレスポンスを返すのみ。
つまり、何度リクエストを送っても、サーバーは同一のクライアントから来たものだとは認識しない。
(これをステート(状態)レス(ない)という)
一方、ログイン機能を実装するためには、どのユーザーがログイン済みか、という情報(状態)をページを跨って持っている必要がある。
この状態をステートフルと言い、これを実現するために必要

クッキー

クッキーとは、サーバー側がクライアント側に情報を記録する、簡易的なテキストファイルのこと

しくみ
スクリーンショット 2016-08-08 2.32.58.png

セッション

クッキーと同様にページ間で情報を維持する仕組み。
クライアントから送信されるセッションIDをキーに、アクセスしてきたユーザーを識別し、対応するセッション情報を取得する。

しくみ
先述のクッキーのしくみの④の後、サーバーにセッションIDをキーとして、セッション情報を保存する。
そして、そのセッション情報を元に、レスポンスを生成。
サーバーでセッションを管理する場合も、キー(セッションID)はクッキー経由でやり取りされる。

PHPでのクッキー・セッション管理

Railsでのクッキー・セッション管理

参考
RubyonRailsアプリケーションプログラム

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?