サーバー側Cookieとクライアント側Cookieの違いは何ですか? 質問する

サーバー側Cookieとクライアント側Cookieの違いは何ですか? 質問する

サーバー側とクライアント側で Cookie を作成することの違いは何ですか? これらはサーバー側 Cookie とクライアント側 Cookie と呼ばれますか? サーバー側またはクライアント側でのみ読み取り可能な Cookie を作成する方法はありますか?

ベストアンサー1

HTTP クッキー

Cookie は、Web サイトがブラウザに状態情報を保存するために使用するキーと値のペアです。Web サイト (example.com) があるとします。ブラウザが Web ページを要求すると、Web サイトは Cookie を送信してブラウザに情報を保存できます。

ブラウザリクエストの例:

GET /index.html HTTP/1.1
Host: www.example.com

サーバーからの応答例:

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: foo=10
Set-Cookie: bar=20; Expires=Fri, 30 Sep 2011 11:48:00 GMT
... rest  of the response

ここでは、foo=10 と bar=20 の 2 つの Cookie がブラウザに保存されています。2 番目の Cookie は 9 月 30 日に期限切れになります。以降の各リクエストでは、ブラウザは Cookie をサーバーに送り返します。

GET /spec.html HTTP/1.1
Host: www.example.com
Cookie: foo=10; bar=20
Accept: */*

セッション: サーバー側Cookie

サーバー側の Cookie は「セッション」と呼ばれます。この場合、Web サイトは、一意のセッション識別子を含む単一の Cookie をブラウザーに保存します。ステータス情報 (上記の foo=10 および bar=20) はサーバーに保存され、セッション識別子は、リクエストとサーバーに保存されているデータを照合するために使用されます。

使用例

セッションと Cookie の両方を使用して、認証データ、ユーザー設定、電子商取引 Web サイトのグラフのコンテンツなどを保存できます。

長所と短所

以下に、解決策の長所と短所を示します。これらは最初に思い浮かぶものですが、他にもきっとあるでしょう。

クッキーの長所:

  • スケーラビリティ: すべてのデータはブラウザに保存されるため、各リクエストはロード バランサを経由して異なる Web サーバーに送信され、リクエストを満たすために必要なすべての情報が得られます。
  • ブラウザ上の JavaScript 経由でアクセスできます。
  • サーバー上に存在しないため、サーバーの再起動後も存続します。
  • RESTful: リクエストはサーバーの状態に依存しない

クッキーの短所:

セッションの長所:

  • 一般的には使いやすく、PHP ではそれほど違いはないと思われます。
  • 無制限のストレージ

セッションの短所:

  • 拡大するのがより困難
  • ウェブサーバーの再起動時に、実装によってはすべてのセッションが失われる場合があります。
  • RESTfulではない

おすすめ記事