セッションとCookieの違い
セッションとCookieの主な違い
- セッションはユーザー情報を含むサーバー側のファイルですが、Cookie はユーザー情報を含むクライアント側のファイルです。
- セッションは Cookie に依存しますが、Cookie はセッションに依存しません。
- セッションはユーザーがブラウザを閉じると終了しますが、Cookie は設定した有効期間に応じて期限切れになります。
- セッションには好きなだけデータを保存できますが、Cookie のデータ保存スペースはわずか 4KB です。
- セッション内の登録されたデータはすべて、Session_destroy() コマンドを使用して破棄できます。ただし、Cookie からデータを削除する unsetcookie() のようなコマンドはありません。

ここで私は両者の違いを分析しました セッションとクッキー メリット・デメリットを総合的に評価していきます。
セッションとは?
セッションは、サーバー上に保存されるグローバル変数です。各セッションには一意の ID が割り当てられ、保存された値を取得するために使用されます。セッションが作成されるたびに、一意のセッション ID を含む Cookie がユーザーのコンピューターに保存され、サーバーへのリクエストごとに返されます。クライアント ブラウザーが Cookie をサポートしていない場合は、一意のセッション ID が URL に表示されます。セッションは、Cookie と比較して比較的大量のデータを保存できます。
セッション値は、ブラウザを閉じると自動的に削除されます。値を永続的に保存したい場合は、値を データベース.
$_COOKIE 配列変数と同様に、セッション変数は $_SESSION 配列変数に格納されます。 Cookie と同様に、セッションは HTML タグの前に開始する必要があります。
なぜ、いつセッションを使用する必要があるのですか?
セッションは、あるページから別のページに値を渡すために使用されます。ユーザー ID などの重要な情報を、悪意のあるユーザーが改ざんできないサーバー上でより安全に保存します。
また、Cookie をサポートしていないブラウザで Cookie の代替手段を使用して、効率的かつ安全な方法でグローバル変数を保存する場合にも使用されます。 URL で渡すよりも、または 4KB を超える容量の情報を一時的に保存するショッピング カートなどのアプリケーションを開発する場合に適しています。
PHP でセッションを作成する
セッションを開始するには、PHP で session_start 関数を開始し、その後、値を $_SESSION スーパーグローバル配列に保存する必要があります。
ページの訪問頻度を追跡するシナリオを考えてみましょう。そのためにはセッションの活用が有効です。
次の例は、セッションで値を確立してアクセスする方法を示しています。
<?php session_start(); //start the PHP_session function if(isset($_SESSION['page_count'])) { $_SESSION['page_count'] += 1; } else { $_SESSION['page_count'] = 1; } echo 'You are visitor number ' . $_SESSION['page_count']; ?>出力:
You are visitor number 1
セッションのメリット
私の観点から見たセッションのメリットは次のとおりです。
- 複数のリクエストにわたって継続的な対話状態を維持することにより、ユーザー対話を強化します。
- ユーザーデータを一時的に保存することでサーバーの負荷を軽減します。
- 限られた期間のデータ公開を制御することでセキュリティを向上させます。
- ユーザーの行動や好みに基づいてパーソナライズされたエクスペリエンスを実現します。
- 複数のステップを追跡することで複雑なトランザクションを容易にします。
- 再認証の必要性を最小限に抑えることで、Web サイトのパフォーマンスを向上させます。
- 分散システム全体でユーザー セッションを効果的に管理することにより、スケーラビリティをサポートします。
セッションのデメリット
私の経験では、これらはセッションを使用することの欠点です。
- セッションデータが傍受された場合、データ侵害のリスクが高まります。
- サーバーのメモリを消費し、システム全体のパフォーマンスが低下する可能性があります。
- 不適切に管理すると、一貫性のないユーザー エクスペリエンスが生じる可能性があります。
- セッションを維持および監視するには追加のサーバー リソースが必要です。
- セッションの有効期限が切れると、ユーザーのアクティビティが中断され、フラストレーションが生じる可能性があります。
- セッションハイジャックや固定化攻撃に対して脆弱です。
- データが永続的に保存されるため、プライバシー規制への準拠が複雑になる可能性があります。
クッキーとは何ですか?
Cookie は、Web サーバーがクライアント コンピュータに保存する最大サイズ 4KB の小さなファイルです。 Cookie が設定されると、後続のすべてのページ リクエストは Cookie の名前と値を返します。 Cookie は、その発行元のドメインからのみ読み取ることができます。たとえば、ドメイン www.guru99.com を使用して設定された Cookie は、ドメイン Career.guru99.com から読み取ることはできません。インターネット上のほとんどの Web サイトには、広告などの他のドメインの要素が表示されます。これらの要素を提供するドメインは、独自の Cookie を設定することもできます。これらはサードパーティ Cookie として知られています。ユーザーが作成した Cookie は、そのユーザーのみに表示されます。他のユーザーはその値を確認できません。ほとんど ウェブブラウザ Cookie、サードパーティ Cookie、またはその両方を無効にするオプションがあります。
なぜ、いつ Cookie を使用する必要があるのですか?
HTTP はステートレス プロトコルです。 Cookie を使用すると、ユーザーのコンピュータに保存されている小さなファイルを使用してアプリケーションの状態を追跡できます。 Cookie が保存されるパスはブラウザによって異なります。 Internet Explorer は通常、これらを Temporal Internet Files フォルダーに保存します。
ユーザーエクスペリエンスのパーソナライズ: これは、ユーザーが設定を選択できるようにすることで実現されます。その後のページ リクエストは、Cookie で設定された設定に基づいてパーソナライズされます。ユーザーがアクセスしたページを追跡します。
PHP で Cookie を作成する
ここで、Cookie の作成に必要な基本的な構文を詳しく見てみましょう。
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
- PHP では、setcookie function Cookieを生成するために利用されます。 「cookie_name」は cookie の識別子を表します。これは、サーバーが $_COOKIE 配列から cookie の値を取得する必要がある場合に不可欠です。この名前は必須です。
- 「cookie_value」は Cookie の内容を示し、これも必須です。
- 「[expiry_time]」パラメータはオプションで、1 時間で期限切れになるように設定するなど、Cookie の有効期間を指定するように設定できます。これは、PHP time() 関数に秒を加算または減算することによって行われます。たとえば、3600 時間を設定するには、time() + 1 です。
- 「[cookie_path]」は、Cookie にアクセスできるサーバー パスを決定するもう 1 つのオプションのパラメーターです。スラッシュ「/」を使用すると、Cookie がドメイン全体で利用可能であることを示しますが、サブディレクトリを指定すると、それらのサブドメインへのアクセスが制限されます。
- 「[domain]」パラメータもオプションで、Cookie にアクセスできる場所を設定します。たとえば、次のように設定します。
www.cookiedomain.com
ドメイン全体で利用できるようになりますが、www.sub.cookiedomain.com
そのサブドメインとその子サブドメインに制限します。ドメインの合計の長さが 253 文字を超えない限り、サブドメインは独自のサブドメインを持つこともできることに注意してください。 - 「[secure]」パラメータはオプションであり、デフォルト設定は false です。 Cookie を HTTPS (true の場合) または HTTP (false の場合) 経由で送信するかどうかを指定します。
- 「[Httponly]」設定もオプションです。 true に設定すると、次のようなクライアント側のスクリプト言語から Cookie にアクセスできなくなります。 Javaスクリプト .
Note: PHP の setcookie 関数は、HTML タグが出力される前に呼び出す必要があります。
Cookie を使用した実際の例を考えてみましょう。
この場合、10 秒後に期限切れになるように設定された Cookie にユーザー名を保存する単純なプログラムを開発します。
次の「cookies.php」コードは、これを実装する方法を示しています。
<?php setcookie("user_name", "Guru99", time() + 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>出力:
the cookie has been set for 60 seconds
クッキーの利点
私の経験から言うと、次のようなメリットがあります。 クッキー:
- フレーバー発見における驚きの要素を強化します。
- ミニマリストの美学を提供し、モダンなブランディングに最適です。
- 梱包の乱雑さを減らし、製品に集中できるようにします。
- 成分の好みやブランド認識に基づく偏見を排除します。
- 先入観を持たずに試食することを奨励し、偏見のないフィードバックをもたらします。
- パッケージングの印刷コストを削減できる可能性があります。
- ラベル表示法がそれほど厳しくない市場での規制遵守を簡素化します。
クッキーのデメリット
私がこれまで見てきたことから、これらは Cookie の欠点です。
- 顧客はアレルゲンや食事制限を特定することができません。
- 健康志向の消費者にとって重要な栄養情報が不足しています。
- ユニークな食材や高級食材をアピールする機会を逃してしまいます。
- 店頭にある類似商品と混同される可能性がございます。
- ブランドの認知度やロイヤルティの構築を妨げます。
- 情報に基づいた消費者の意思決定を妨げます。
- これは、厳格な表示法がある地域では法的問題につながる可能性があります。
セッションとクッキー: それらの違い
私が実際に観察したセッションと Cookie の重要な違いは次のとおりです。
セッションはユーザー情報を含むサーバー側のファイルです。 |
Cookie はユーザー情報を含むクライアント側のファイルです。 |
ユーザーがブラウザを閉じるとセッションが終了します |
Cookie は設定した有効期間に応じて終了します |
In PHP$_SESSIONを使用する前に、session_start();を記述する必要があります。他の言語でも同様です。 |
Cookie はローカル マシンに保存されるため、起動する必要はありません。 |
セッション内では、好きなだけデータを保存できます。到達できる唯一の制限は、スクリプトが一度に消費できる最大メモリです。デフォルトでは 128MB です。 |
公式の最大 Cookie サイズは 4KB です |
セッションは Cookie に依存します |
Cookie はセッションに依存しません |
Session_destroy() は、登録されたすべてのデータを破棄するか、一部のデータの設定を解除するために使用されます。 |
unsetcookie() という名前の関数はありません |
まとめ:
データのセキュリティと容量の要件が Cookie が提供できる制限を超える場合は、セッションを使用することをお勧めします。ただし、使いやすさと、軽量で永続的なユーザー状態追跡の実装という点では、Cookie は無敵です。