Springフレームワーク基礎に入る前に
今回の単元では『Spring フレームワーク入門』で作成したspring_basicプロジェクトに追加して作成します。自身のプロジェクトを紛失してしまった方は以下のURLから取得してください。
https://kanda-it-school-square.com/?wpdmdl=10734
第1章 クッキーとセッションを利用しよう
1.1 クッキーの仕組みを理解しよう
Webアプリケーションには、クッキー(cookie)と呼ばれるクライアントにデータを保持する仕組みが存在します。本章では、クッキーについて学習していきます。JSP/サーブレット単元で扱ってきたクッキーと扱い方は同じです。
1.1.1 クッキーとは
クッキーとは、Webブラウザを通じてクライアントに保存したテキストデータとそのファイルのやり取りをする仕組みのことで、Webアプリケーションを利用する際に必要な情報を保存します。
クッキーの主な目的の 1 つは、時間を節約するための便利な機能を提供することです。クッキーにログイン情報などを保管することで、次回のアクセスからログイン処理を省略することができるようになります。
このクッキーには以下のような特徴があります。
- 登録した情報以外の情報にはアクセスできない。
- ブラウザごとに、サーバー(ドメイン)ごとに管理される。
- 1つのクッキーには4096バイトのデータを登録できる。
- 最大で300個のクッキーをパソコン内に保存することができる。
- 1つのWebアプリケーションから同じパソコンに対して登録できる数は20個に制限されている。
- 各クッキーには有効期限を設定することができ、有効期限を過ぎたクッキーは消滅する。
- ブラウザの設定でクッキーを利用不可にすることができる。
- セキュリティ上の危険性が存在する。
クッキーには上記の制限があり、また、一時的なデータを管理するのには便利な「セッション」があるので、Webアプリケーション全体を通してみるとクッキーを直接扱う機会はそれほど多くはありません。しかし、ログインの自動化や一時データを長期に保管するといった機能をアプリケーションに実装する場合にクッキーは大変便利な仕組みとなっています。
1.1.2 クッキーの動作を知ろう
クッキーを利用したWebアプリケーションにアクセスすると、そのWebアプリケーション専用のファイルがパソコン内に保存されます。また、保存されたデータは、再度同じWebアプリケーションにアクセスした際に、ブラウザからWebアプリケーションに自動的に送られる仕組みになっています。
1回目のアクセス時の処理は次のようになります。
① WebブラウザからWebアプリケーションへアクセス。
② アプリケーションの処理内でクッキーを生成。
③ 生成されたクッキーをレスポンス情報とともにWebブラウザに送信
④ クッキーをパソコン内に保存。2回目以降のアクセス時の処理は次のようになっています。
⑤ 登録されたクッキーを検索、取得。
⑥ WebブラウザからWebアプリケーションへアクセス、リクエスト情報とともにクッキーを送信。
⑦ アプリケーション内でクッキーを利用し処理を実行。
⑧ クッキー情報をもとに処理されたレスポンス情報をWebブラウザに送信。Webアプリケーションでは、このクッキーの情報が例えばIDやパスワードであった場合にはクッキーの情報からログイン済みの画面をブラウザに返し、ショッピングサイトのカート情報であった場合にはカート内に商品の情報が入った状態の画面をブラウザに返す、という動作が可能になります。
1.1.3 クッキーの確認方法
クッキーの情報はブラウザごとにパソコン内に保存されます。
本テキストで利用しているGoogle Chromeでは、以下の手順で保存されたクッキーを確認することができます。なお、クッキーの確認をする画面ではクッキーの削除も行えるので、操作には注意が必要です。
※以下に案内する確認方法は、2024年11月時点での確認方法となります。ブラウザのアップデートなどにより変更される可能性がありますのでご注意ください。
① ブラウザの右上にある「縦になっている…」をクリックし、表示された一覧の「設定」を選択します。
② 「設定」の画面が表示されたら、左のメニューにある「プライバシーとセキュリティ」をクリックしてください。
③ 表示された「プライバシーとセキュリティ」画面にある「サードパーティ Cookie」をクリックします。
④ 「サードパーティ Cookie」画面にある「すべてのサイトデータと権限を表示」をクリックします。
⑤ 「すべてのサイトデータと権限を表示」をクリックすると、サイトごとに登録されたクッキーを確認することができます。なお、下の図ではクッキーが1つしか存在しませんが、登録されたクッキーの数や情報は、各PCで閲覧したサイトなどにより異なります。