はじめに
cookieとセッションの理解が曖昧なのでアウトプット
今回は概要のみで具体的にどこに、なんのデータが入ってくるかは書かない
ブラウザとwebサーバー間の通信時は、前回の情報を保持しない
ブラウザとwebサーバー間のデータのやり取り(HTTP通信)はステートレスで、前回の情報を保持しません。
つまり、ECサイトでショッピングカートに商品を入れ、購入ボタンを押し、確認ページに飛ぶ際にはショッピングカートの情報を保持しなければなりません。
しかしステートレスな通信では前回の情報を保持できないため、商品の情報を次のリクエスト時には忘れてしまいます。
ECサイトでのステートレスな流れ
上記のようにステートレスだと、前回のカートの中に入っていた情報を覚えていません。
そのため2回目のレスポンス時には、カートに何も入ってない状態で返ってきてしまいます。
これでは、ECサイトので購入の処理、ログイン状態の保持ができなくなってしまいます。
cookieのおかげで前回の情報を保持できる
状態を保持するためにcookieという仕組みがあります。
cookieとはサーバーとwebサーバー間の状態を管理することができます。
順序を下記に示します。
1.webサーバーがwebブラウザに状態を区別するidを割り当てHTTPヘッダーに含め、レスポンスを返す
2.ブラウザはリクエストを送るたびに、webサーバーから受け取ったidをHTTPヘッダに含めリクエストする
3.サーバーはそのidからコンテンツの内容に紐付いている情報をもとに、内容を変化させユーザーに返す
2,3を繰り返すことによって、状態を保持する事ができる。
cookieを用いたステートフルな流れ
最初のリクエスト時にwebサーバーはidを発行します。
それをcookieとしてブラウザに返します。
ブラウザは受け取ったcookieをヘッダーに含めリクエストします。
ブラウザから受け取ったcookieのデータから、ブラウザを識別します。
識別後、ブラウザごとに内容をカスマイズしてブラウザに返します。
セッションとは
セッションとはwebサーバーとブラウザ間の関連のある、一連の処理流れのことを指します。
ECサイトの「商品をカートに入れる」→「購入確認ボタンを押す」→「注文を確定する」といった一連の処理流れのことです
複数のブラウザから、一連のセッションを管理するにはセッションIDを用いて管理します。
セッションIDとはブラウザを識別するためのIDのことです。
ブラウザからwebサーバーにリクエストが来た際に、webサーバーが発行しcookieに格納後、ヘッダーに含めてレスポンスとして返します。
セッションIDはどのブラウザがセッションのどこまで処理が進んだか管理することができます。
セッションデータを用いて、ログイン情報や、ECサイトならカートに商品は入っているのかなどを参照します。
セッションデータはセッションIDに紐付いているため、セッションIDさえ識別できればデータを取り出せます。
おわりに
まだ理解があやふやです。
特にセッションまわり
今回は概要のみにしましたが、次回は厳密にどこにデータが入るかコードで示した記事を書きます。
Top comments (0)