Cookie とは何ですか?
Web ブラウザとサーバーは HTTP プロトコルを使用して通信します。HTTP はステートレス プロトコルです。ただし、商用 Web サイトの場合は、異なるページ間のセッション情報を維持する必要があります。例えば、複数のページを完了すると、ユーザー登録が終了します。しかし、すべての Web ユーザーのセッション情報を維持する方法は次のとおりです。
多くの場合、Cookie の使用は、好み、購入、手数料、より良い訪問エクスペリエンスや Web サイト統計のリクエストなどの情報を記憶および追跡する最も効果的な方法です。
それはどのように機能しますか?
サーバーは、Cookie の形式で訪問者のブラウザにデータを送信します。このブラウザは Cookie を受け入れることができます。もしそうであれば、それは訪問者のためにハードドライブに保存されたテキストのみの記録です。訪問者がサイトの別のページにアクセスすると、ブラウザは取得のために同じ Cookie をサーバーに送信します。取得されると、サーバーは何が保存されたかを認識/記憶します。
Cookie には、5 つの可変長フィールドを持つプレーン テキスト データ レコードがあります:
Cookie は元々 CGI プログラミングで使用するために設計されており、Cookie データは Web ブラウザと Web サーバーの間で自動的に転送されるため、サーバー上の CGI スクリプトはクライアント値に保存されている Cookie を読み書きできます。
JavaScript は、ドキュメント オブジェクトの Cookie 属性を使用して動作することもできます。 JavaScript は、現在の Web ページに適用される Cookie の読み取り、作成、変更、削除を行うことができます。
Cookie を保存:
Cookie を作成する最も簡単な方法は、次のように文字列値を document.cookie オブジェクトに割り当てることです。
文法
document.cookie = "key1=value1;key2=value2;expires=date";
ここでは、expires 属性オプションを指定します。この属性に有効な日付または時刻が指定されている場合、Cookie は指定された日付または時刻に期限切れになり、Cookie の値にアクセスできなくなります。
注: Cookie の値にはセミコロン、カンマ、または空白を含めることはできません。このため、JavaScript のエスケープ() 関数を使用して、Cookie の前に保存された値をエンコードする必要がある場合があります。これを行う場合、Cookie の値を読み取るときに、対応する unescape() 関数も使用する必要があります。
Cookie の読み取り:
document.cookieobject の値は cookie であるため、cookie の読み取りは書き込みと同じくらい簡単です。したがって、Cookie にアクセスしたいときはいつでも、この文字列を使用できます。
文字列 document.cookie にはセミコロンが続きます。ここで、name は Cookie の名前、value は文字列値で区切られた name=value ペアのリストです。
Cookie の有効期限を設定します:
保存された Cookie に有効期限と有効期限を設定することで、現在のブラウザ セッションを超えて Cookie の有効期間を延長することができます。これは、expires 属性の日付と時刻を設定することで実行できます。
例:
次の例は、Cookie が 1 か月後に期限切れになるように設定する方法を示しています。
<html> <head> <script type="text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() + 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie="name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" alert("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name="formname" action=""> Enter name: <input type="text" name="customer"/> <input type="button" value="Set Cookie" onclick="WriteCookie()"/> </form> </body> </html>
Cookie を削除:
Cookie を削除したい場合、後で Cookie を読み取ろうとしたときに何が返されるかがわかることがあります。これを行うには、有効期限を過去の日付に設定するだけです。
例:
次の例は、有効期限を 1 か月前に設定して Cookie を削除する方法を示しています。
<html> <head> <script type="text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() - 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie="name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" alert("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name="formname" action=""> Enter name: <input type="text" name="customer"/> <input type="button" value="Set Cookie" onclick="WriteCookie()"/> </form> </body> </html>
注: 日付を設定せずに、setTime() 関数を使用して新しい値を確認できます。