LoginSignup
2
0

More than 1 year has passed since last update.

##Cookieとセッションについて

Last updated at Posted at 2021-05-10

〜アウトプットメモ〜

前提知識

・HTTPの理解必要
・リクエスト、レスポンスなどの理解
・HTTPはリクエストし、レスポンスする、この1往復で通信が切断される→以前の状態を全く覚えていない。これをステートレスと言う。
・ステートフルにするには、サーバーがクライエントに対して識別できる一意の値を渡し、クライエントはリクエストする時にその値を教えてあげればサーバー側で識別できるようになる。この役割を果たしているのがCookie(クッキー)

Cookieについて

・クライアントに保存された情報のこと
<初回>
①リクエスト
②レスポンス(Cookieを保存してください)
③レスポンスの指示に従い、パソコンにCookieを保存
<2回目>
①リクエスト(保存しているCookieの情報も送信)
②レスポンス
・具体的にサーバーはレスポンスメッセージにSet-Cookieヘッダを付与することで、クライエントに対して「Cookieを保存してください」と指示する事が可能。Set-CookieヘッダにはCookieの有効期限やCookieを送るドメイン、有効パスなどの各属性があり。
・クライアントは、リクエストメッセージにCookieヘッダを付与する事で、
「このようなCookieが保存されています」と教える。
・Set-Cookieヘッダの定義
setcookie(Cookie名, Cookie値, 有効日時, パス, ドメイン, HTTPS接続のみ, Javascript無効)
・PHPでCookieを取得する
$_COOKIE = array(
'name' => 'sato';
)

$name = $_COOKIE['name'];
echo $name;

連想配列に格納された値を取得するときは$変数名[キー]のように記述する。

セッションについて

・セッションとは、一連の処理の始まりから終わりまでを表す概念のこと。
・PHPでセッション開始するにはsession_start();関数を利用します。
・セッションを管理するには、Cookieに一意の値を入れて、リクエストしてもらうことで、一連の処理として扱える。この一意の値の役割をするのがセッションID。
session_start()を記述だけで、自動でセッションIDを発行してくれる。

<リクエストメッセージにセッションIDがない場合>
・セッションIDを発行し、セッションIDをCookieに保存するようにレスポンスメッセージを送信
・セッションIDを発行する時に、サーバー側ではセッションIDごとにセッションファイルを作成

<リクエストメッセージにセッションIDがある場合>
・セッションIDがあれば、該当するセッションファイルにある情報を参照

2
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
2
0