ASP.NETで学ぶCookieを使った状態管理の基礎を完全解説!初心者でもわかる仕組みと使い方
生徒
「Webサイトって、ページを移動したら前の情報は全部消えちゃうんですか?」
先生
「基本的には消えます。ただし、Cookieを使うことで、情報を覚えさせることができます。」
生徒
「Cookieって、お菓子のクッキーとは違うんですよね?」
先生
「名前は似ていますが、Webブラウザに情報を保存する仕組みのことです。ASP.NETでもよく使われます。」
1. Webアプリでいう「状態管理」とは?
ASP.NETでWebアプリケーションを作るときに重要なのが状態管理です。 状態管理とは、「ユーザーがどんな操作をしたか」「前のページで何を入力したか」といった情報を覚えておくことです。 Webページは画面を開くたびに新しく作り直されるため、何もしなければ過去の情報はすべて忘れてしまいます。
例えるなら、毎回会うたびに記憶がリセットされる店員さんのようなものです。 そこで「このお客さんは常連です」とメモを残しておくことで、前回の情報を思い出せるようにします。 そのメモの一つがCookieです。
2. Cookieとは何かを超かんたんに説明
Cookieとは、Webブラウザに小さな情報を保存する仕組みです。 保存される場所はサーバーではなく、ユーザーのパソコンやスマートフォンのブラウザです。
よくある例としては、ログイン状態の保持や、前回選んだ言語設定の保存などがあります。 「このサイト、前に見たとき日本語だったな」と覚えているのは、Cookieのおかげです。
保存できる情報量は少なく、文字列が中心です。 そのため、大きなデータを入れる用途には向いていません。
3. ASP.NETでCookieを使う基本の考え方
ASP.NETでは、レスポンスでCookieを送信し、リクエストで受け取るという流れで動きます。 サーバーが「この情報をCookieとして保存してください」とブラウザに渡し、 次にアクセスしたときにブラウザがそのCookieを送り返します。
難しく聞こえますが、やっていることは「付せんを渡して、次回来たときに見せてもらう」だけです。
4. Cookieを書き込むサンプルコード
ここではASP.NET Core MVCでCookieを保存する基本例を見てみましょう。 初心者でも読めるよう、シンプルな例にしています。
Response.Cookies.Append("UserName", "Taro");
このコードは「UserName」という名前のCookieに「Taro」という文字を保存しています。 Appendは「追加する」という意味です。
5. Cookieを読み取るサンプルコード
保存したCookieは、次のリクエストで読み取ることができます。
string userName = Request.Cookies["UserName"];
このコードで、ブラウザに保存されているUserNameの値を取得できます。 もしCookieが存在しない場合は、何も入っていない状態になります。
6. 有効期限付きCookieの考え方
Cookieには有効期限を設定できます。 期限を設定しない場合は、ブラウザを閉じたときに消える一時的なCookieになります。
「一週間だけ覚えておく」「一日で消す」といった設定ができるため、 ログイン状態や簡単な設定情報に使われます。
var options = new CookieOptions
{
Expires = DateTime.Now.AddDays(7)
};
Response.Cookies.Append("Theme", "Dark", options);
7. Cookieを使うときの注意点
Cookieは便利ですが、重要な情報をそのまま保存してはいけません。 パスワードや個人情報を平文で入れるのは危険です。
また、ユーザーがブラウザ設定でCookieを無効にしている場合、保存できないこともあります。 そのため、Cookieは「補助的な記憶」として使うのが基本です。
8. Cookieとセッションの違いをざっくり理解
Cookieはブラウザ側に保存されますが、セッションはサーバー側に保存されます。 Cookieは軽くて簡単、セッションは安全だけど管理が必要、という違いがあります。
ASP.NETの状態管理では、用途に応じてCookieとセッションを使い分けます。 まずはCookieの基本を理解することが、Web開発の第一歩です。