JavaScript - Cookie Attributes

こんにちは、Web開発者の卵さんたち!今日は、クッキーの世界への甘い旅に出かけましょう。チョコレートチップのクッキーではなく(それが欲しいけど!)、私たちのWeb体験をスムーズでパーソナライズされたものにするデジタルなクッキーについてです。虚拟の牛乳を手に取り、JavaScriptのクッキー属性という美味しいトピックに潜り込んでみましょう!

JavaScript -  Cookie Attributes

Cookie Attributes

具体的な内容に進む前に、クッキー属性とは何かを理解しましょう。クッキーはブラウザがあなたについて保持している小さなメモと思ってください。クッキー属性は、これらのメモに書かれた特別な指示で、ブラウザがどのように取り扱うかを示しています。これらはセキュリティ、機能性、ユーザー体験において非常に重要です。

以下是我们将要讨论的主要クッキー属性の簡単な概要です:

属性 説明
Name/Value クッキーの核心データ
Path サーバーのどのパスがクッキーにアクセスできるかを指定
Expires クッキーの有効期限を設定
Max-Age クッキーがどれくらい持続するかを定義
Domain どのドメインがクッキーを使用できるかを決定

Check the Attribute Value in the Browser

クッキーを設定する前に、チェック方法を学びましょう。ブラウザのデベロッパーツール(通常はF12)を開き、ApplicationまたはStorageタブに移動し、Cookiesを探します。クッキージャーの中を覗くようなものです!

// シンプルなクッキーを設定
document.cookie = "username=John Doe";

// コンソールでチェック
console.log(document.cookie);

このコードを実行し、コンソールを確認すると「username=John Doe」が表示されます。基本的なクッキーを設定して読み取るのはこのくらい簡単です!

Cookie's Name/Value Attribute

名前/値のペアはクッキーの中心です。鍵とそれに対応する宝のようなものです。

// 名前と値でクッキーを設定
document.cookie = "favoriteColor=blue";

// 複数のクッキーを設定
document.cookie = "favoriteAnimal=dog";
document.cookie = "favoriteNumber=42";

// クッキーを読み取る
console.log(document.cookie);

これで全てのクッキーが表示されます。それぞれの document.cookie を割り当てるたびに新しいクッキーが追加され、既存のものは上書きされないことを覚えておいてください!

Cookie's Path Attribute

パス属性は、どのページがクッキーにアクセスできるかを決定します。クッキーがウェブサイトの家のどの部屋に入ることができるかを指定するようなものです。

// 特定のパスにクッキーを設定
document.cookie = "user=Alice; path=/dashboard";

// 全てのサイトにクッキーを設定
document.cookie = "theme=dark; path=/";

この例では、「user」クッキーは「/dashboard」パスとそのサブパスでのみアクセス可能で、「theme」クッキーは全文サイトで利用できます。

Cookie Expires Attribute

expires属性は、クッキーが削除される特定の日期を設定します。ミルクに期限を設定するようなものです!

// 7日間有効なクッキーを設定
let expirationDate = new Date();
expirationDate.setDate(expirationDate.getDate() + 7);
document.cookie = "subscription=premium; expires=" + expirationDate.toUTCString();

このクッキーは7日後には自己破壊します。ミッションインポッシブル、クッキースタイル!

Cookie's maxAge Attribute

maxAge属性は、クッキーがどれくらい持続するかを秒単位で設定します。クッキーのためのカウントダウンタイマーのようなものです。

// 1時間持続するクッキーを設定
document.cookie = "session=active; max-age=3600";

// 即座に削除されるクッキーを設定
document.cookie = "tempData=123; max-age=0";

最初のクッキーは1時間持続し、二番目のクッキーは作成された瞬間に消えます!

Cookie Domain Attribute

ドメイン属性は、どのドメインがクッキーにアクセスできるかを指定します。秘密のレシピを誰に共有するかを決めるようなものです。

// 現在のドメインとそのサブドメインに対するクッキーを設定
document.cookie = "language=en; domain=.example.com";

// 正確なドメインに対するクッキーを設定
document.cookie = "userId=12345; domain=shop.example.com";

最初の例では、クッキーはexample.comとその全てのサブドメインでアクセス可能であり、二番目のクッキーはshop.example.comでのみ利用できます。

さて、これらをすべて合わせてより複雑な例を見てみましょう:

function setCookie(name, value, days, path, domain, secure) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires +
(path ? "; path=" + path : "") +
(domain ? "; domain=" + domain : "") +
(secure ? "; secure" : "");
}

// 使用例
setCookie("username", "JohnDoe", 7, "/", "example.com", true);

この関数を使うと、私たちが議論したすべての属性を持つクッキーを設定することができます。クッキー作成のための万能ナイフのようなものです!

覚えておいてください、クッキーは強力なツールですが、権力には責任が伴います。クッキーを使用する際には、ユーザーのプライバシーとセキュリティに注意を払ってください。

そして、ここまでに!あなたは今、JavaScriptでクッキーを扱うために充分な知識を持ちました。次回、Webをブラウジングしてあなたの設定を覚える時、その甘い秘密を知っていることを思い出してください。ハッピーコーディングを、そしてあなたのクッキーが常に新鮮で安全であることを願っています!

Credits: Image by storyset