JavaScriptでのCookieの使い方講座_基礎知識

WBOY
リリース: 2016-05-16 15:56:41
オリジナル
1201 人が閲覧しました

Cookie とは何ですか?

Web ブラウザとサーバーは HTTP プロトコルを使用して通信します。HTTP はステートレス プロトコルです。ただし、商用 Web サイトの場合は、異なるページ間のセッション情報を維持する必要があります。例えば、複数のページを完了すると、ユーザー登録が終了します。しかし、すべての Web ユーザーのセッション情報を維持する方法は次のとおりです。

多くの場合、Cookie の使用は、好み、購入、手数料、より良い訪問エクスペリエンスや Web サイト統計のリクエストなどの情報を記憶および追跡する最も効果的な方法です。
それはどのように機能しますか?

サーバーは、Cookie の形式で訪問者のブラウザにデータを送信します。このブラウザは Cookie を受け入れることができます。もしそうであれば、それは訪問者のためにハードドライブに保存されたテキストのみの記録です。訪問者がサイトの別のページにアクセスすると、ブラウザは取得のために同じ Cookie をサーバーに送信します。取得されると、サーバーは何が保存されたかを認識/記憶します。

Cookie には、5 つの可変長フィールドを持つプレーン テキスト データ レコードがあります:

  • 有効期限: Cookie の有効期限が切れる日付。これが空白の場合、訪問者がブラウザを終了すると Cookie の有効期限が切れます。
  • ドメイン: Web サイトのドメイン名。
  • パス: Cookie ディレクトリまたは Web ページを設定するパス。任意のディレクトリまたはページから検索する場合、Cookie は空です。
  • セキュア: このフィールドに「セキュア」という単語が含まれている場合、Cookie はセキュアなサーバーのみを取得できます。このフィールドが空の場合、制限はありません。
  • 名前=値: Cookie 設定はキーと値のペアの形式で取得されます。

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() 関数を使用して新しい値を確認できます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート