この記事では、Cookie の起源と基本的な特性について簡単に説明し、PHP で Cookie を設定する方法を学習するための技術的背景を提供し、PHP 初心者に読むことをお勧めします。
PHP で Cookie を設定する方法を学ぶ前に、まず Cookie テクノロジーについて理解しましょう。
(1) Cookie 技術の紹介
WEB 技術開発の歴史において、Cookie 技術の登場は大きな変化です。まず、Netscape は Netscape Navigator ブラウザに Cookie テクノロジを導入しました。それ以来、World Wide Web Association が Cookie 標準をサポートし始めました。その後、Microsoft による精力的な推進の後 (Microsoft の IIS Web サーバーで使用されている ASP テクノロジが Cookie テクノロジを多用していたため)、Cookie テクノロジは Microsoft の Internet Explorer ブラウザで完全にサポートされるようになりました。これまでのところ、ほとんどのブラウザは Cookie テクノロジーをサポートしているか、少なくとも Cookie と互換性があります。
テクノロジーの利用。
1) クッキーとは何ですか?
Netscape の公式ドキュメントの定義によれば、Cookie はサーバーまたはスクリプトが HTTP プロトコルの下でクライアントのワークステーション上の情報を維持するための方法です。 Cookie は、Web サーバーによってユーザーのブラウザに保存される小さなテキスト ファイルであり、ユーザーに関する情報 (識別番号、パスワード、ユーザーが Web サイトで購入する方法、ユーザーがサイトを訪問した回数など) が含まれる場合があります。ユーザーがサーバーに接続するたびに、Web サイトは Cookie 情報にアクセスできます。
平たく言えば、ブラウザは Cookie をサポートするために 1 つ以上の限定されたファイルを使用します。これらのファイルは、Windows オペレーティング システムを使用するマシンでは Cookie ファイルと呼ばれ、Macintosh マシンではマジック Cookie ファイルと呼ばれ、Web サイトで Cookie データを保存するために使用されます。
Web サイトはこれらの Cookie ファイルに情報を挿入することがありますが、これにより一部のインターネット ユーザーに副作用が生じる可能性があります。一部のユーザーは、これが個人のプライバシーの侵害を引き起こすと信じており、さらに悪いことに、Cookie は個人空間の侵害であり、ユーザーのコンピューターにセキュリティ上の危険を引き起こす可能性があると信じています。
現在、一部の Cookie は一時的なものであり、その他は永続的なものです。一時 Cookie は、指定された期間だけブラウザに保存され、指定された期間が経過すると、Cookie はシステムによって消去されます。たとえば、PHP では、ユーザーが Web サイトを離れるまでユーザーの進行状況を追跡するために Cookie が使用されます。永続的な Cookie はユーザーの Cookie ファイルに保存され、次回ユーザーが戻ったときにも呼び出すことができます。
Cookie を Cookie ファイルに保存すると、やりすぎて大きな問題が発生すると考えるユーザーもいます。その主な理由は、一部のユーザーが、ユーザーがどの種類のサイトを訪問するのが好きか、どのようなアクティビティに参加するのが好きかなど、ユーザーのオンラインサーフィンの習慣が Cookie によって追跡されるのではないかと懸念しているためです。このような個人情報が、ひとたび下心を持つ者の手に渡った場合、その個人が大量の広告ゴミの対象となったり、思わぬ被害に遭ったりする可能性があると危惧しています。しかし、Webサイト外のユーザーはWebサイト全体のCookie情報を取得することができないため、そのような心配は全くありません。したがって、この目的で Cookie を使用することは不可能です。しかし、一部のユーザーの誤解や「誤った噂」のため、一部のブラウザ開発者は慣れた対応をせざるを得ません (たとえば、Netscape Navigator 4.0 と Internet Explorer 3.0 は両方とも Cookie をブロックするオプションを提供しています)。
Cookie テクノロジーを長い間待ち望んでいた結果、多くのブラウザー開発者はブラウザーで Cookie を柔軟に制御する必要がありました。たとえば、現在の 2 つの主要なブラウザである Netscape Navigator と Internet Explorer は、この方法で Cookie を処理します。
: Netscape Navigator 4.0 は Cookie の警告を受け入れるだけでなく、Cookie をブロックすることもできます。Internet Explorer 3.0 も Cookie をブロックできますが、Internet Explorer 4.0 ではブロック オプションを提供せずに警告のみを受け入れることができます。
Explorer 4.0 以降の更新バージョンには、Cookie をブロックするオプションが追加されています。
さらに、最新のテクノロジーの多くは、Cookie をブロックできないブラウザでも Cookie をブロックできます。たとえば、Cookie ファイルをさまざまなタイプに設定することで、Cookie の使用を制限できます。ただし、残念ながら、Cookie を完全にブロックしたい場合は、多くのサイト ページが確実に拒否されることになります。今日、多くの Web サイト開発者が Cookie テクノロジの強力な機能に夢中になっているため、たとえば、Session オブジェクトの使用は Cookie のサポートから切り離すことができません。
現在も Cookie について議論しているインターネット ユーザーがいますが、大多数のインターネット ユーザーは依然として Cookie を受け入れる傾向があります。したがって、Web ページの開発には Cookie テクノロジーを安全に使用できます。
2) Cookie はどのように機能しますか?
Cookie を理解するには、Cookie がどのように機能するかを知ることが不可欠です。一般に、Cookie は HTTP ヘッダーを通じてサーバーからブラウザに返されます。まず、サーバーは応答内の Set-Cookie ヘッダーを使用して Cookie を作成します。次に、ブラウザーは、作成した Cookie を Cookie ヘッダーを通じてリクエストに含めてサーバーに返し、ブラウザーの引数を完了します。
たとえば、訪問者の情報を含めるために、login という名前の Cookie を作成しました。Cookie を作成するとき、サーバー側のヘッダーは次のようになります。訪問者の登録名は「Michael Jordan」であると想定されます。パスなどの属性
ドメイン、有効期限などを指定します。
Set-Cookie:login=Michael Jordan;path=/;domain=msn.com;
expires=Monday,01-Mar-99 00:00:01 GMT
上記のヘッダーにより、ブラウザ コンピュータの Cookie ファイルにレコードが自動的に追加されます。ブラウザは、変数名「login」を持つ Cookie の値を「Michael Jordon」に割り当てます。実際の配信プロセスでは、この Cookie の値が URLEncode メソッドを通過することに注意してください。
URLエンコード操作。 Cookie 値を含む HTTP ヘッダーがブラウザーの Cookie ファイルに保存されると、ヘッダーはリクエスト内のパスを無視して Cookie をサーバーに返すようにブラウザーに通知し、ブラウザーの認証操作が完了します。
さらに、Cookie の使用を制限するために Cookie のいくつかの属性を使用します。たとえば、Domain 属性はブラウザ側で Cookie の送信を制限でき、Cookie は指定されたサーバーにのみ送信され、 www.phpq.netなどの他の Web サイトには送信されません。 Expires 属性は、Cookie が保存される期間を指定します。たとえば、上記の Cookie は 1999 年 3 月 1 日にブラウザに 1 秒間だけ保存されます。もちろん、ブラウザ上の Cookie が多すぎて、システムで許可されている範囲を超えた場合、ブラウザはそれらを自動的に削除します。属性 Path に関しては、Cookie がサーバーに送信されるディレクトリ パスを指定するために使用されます。
注: ブラウザが Cookie を作成すると、この Web サイトに対するすべてのリクエストのヘッダーにこの Cookie が含まれますが、他の Web サイトからのリクエストの Cookie は送信されません。そしてブラウザは Cookie の有効期限が切れるまで送信し続けます。 Cookie テクノロジーは、その誕生以来、多くのインターネット ユーザーと Web 開発者にとって議論の焦点となってきました。一部の上級 Web 専門家を含む一部のインターネット ユーザーは、Cookie テクノロジーの機能が弱すぎるため、またはその他の技術的なパフォーマンス上の理由からではなく、単に Cookie の使用が害を引き起こすと感じているためです。ネットワークユーザーのプライバシーに影響します。 Cookie は Web サーバーによってユーザーのブラウザに保存される小さなテキスト ファイルであるため、ユーザーに関する情報 (識別番号、パスワード、ユーザーが Web サイトで購入した方法、ユーザーが購入した回数など) が含まれています。サイトにアクセスします)。 では、Cookie テクノロジーとは一体何なのでしょうか?それは本当にインターネット ユーザーの個人的なプライバシーに害をもたらすのでしょうか?上記の情報を読んだ後、対策を立てる必要があります。