cookie
ブラウザとWebサーバー間で情報を交換するための小さなテキストファイル。
サイトがユーザーのデバイスに保存することで、
ユーザーの識別や設定の記憶、ログイン情報の保持など、さまざまな目的に利用できる。
クッキーはパースする必要がある?
「パース(parse)」とは、データや文字列を特定の形式に変換して、プログラムが理解できる構造にすることを指します。具体的には、テキストデータを適切なデータ型やデータ構造に変換する操作です。
なんでパースするの?
クッキーは通常、HTTPヘッダーの一部として送信される文字列です。複数のクッキーがセミコロン(;)で区切られているため、これらのクッキーを個別のキーと値のペアに分解する必要があります。これを「パースする」と言います。
いい感じにオブジェクトにしてくれる機能って感じかな!
クライアントとサーバーサイドのクッキーの違い
クライアントサイドのクッキー
定義: クライアントサイドのクッキーは、ユーザーのブラウザに保存されるクッキーです。ユーザーがウェブサイトにアクセスする際、サーバーから送信されたクッキーがブラウザに保存されます。
役割:
セッション管理: ユーザーのログイン状態を保持するため。
ユーザー設定: ウェブサイトのテーマや言語設定など、ユーザーの好みを保存するため。
トラッキング: ユーザーの行動を追跡し、マーケティングや分析に利用するため。
取得方法: JavaScriptを使用してクッキーの値を取得・設定することができます。例えば、document.cookieや、js-cookieライブラリを使用します。
サーバーサイドのクッキー
定義: サーバーサイドのクッキーは、クライアントからのリクエストに対してサーバーがレスポンスとして送信するクッキーです。サーバーは、クライアントにクッキーを設定するためにHTTPヘッダーを使用します。
役割:
データの管理: サーバーがクライアントの状態を管理するために使用されます(例: セッションID)。
セキュリティ: CSRF対策や、ユーザーの認証情報を管理するため。
設定方法: サーバー側のコード(Node.js、Expressなど)で、レスポンスヘッダーにSet-Cookieを追加してクッキーを設定します。例えば、以下のように設定します。
res.setHeader('Set-Cookie', 'username=JohnDoe; HttpOnly; Path=/; Max-Age=3600');
たとえば、ダークモードの設定を保存する場合(clientクッキーかな?)