JavaScriptクッキーの有効期限は?

JavaScript Cookie の有効期限について

JavaScript Cookie の有効期限について

JavaScriptにおいて、Cookieはユーザーのブラウザにデータを保存するために広く利用されています。Cookieは、ウェブサイトの訪問者に関する情報を保存し、その後の訪問時にその情報を利用することを可能にします。例えば、ユーザー名、ショッピングカートの内容、サイトの表示設定などが挙げられます。

Cookieの有効期限

Cookieの重要な側面の一つに有効期限があります。有効期限とは、Cookieがブラウザによって自動的に削除されるまでの期間です。有効期限を設定しない場合、Cookieは「セッションCookie」として扱われ、ブラウザが閉じられた時点で削除されます。

逆に、有効期限を設定する場合、Cookieは「永続Cookie」として扱われ、設定された期間中はブラウザに保存されます。有効期限は、以下のように設定することができます。


document.cookie = "username=John Doe; expires=Tue, 19 Jan 2024 12:00:00 UTC";

上記の場合、"username"という名前のCookieは、2024年1月19日12:00:00 UTCに有効期限が切れ、ブラウザによって削除されます。

有効期限の形式

Cookieの有効期限を設定する際、日付はUTC(協定世界時)で指定する必要があります。日付の形式は、以下のように指定します。

Weekday, DD-Mon-YYYY HH:MM:SS GMT

各項目の説明は以下の通りです。

項目 説明
Weekday 曜日(3文字の英語表記)
DD 日(2桁)
Mon 月(3文字の英語表記)
YYYY 年(4桁)
HH 時(24時間表記、2桁)
MM 分(2桁)
SS 秒(2桁)
GMT グリニッジ標準時(UTCと同じ)

30日間の有効期限を設定する例

例えば、Cookieの有効期限を30日間とする場合、JavaScriptは以下のようになります。


// 現在の日時を取得
var now = new Date();

// 30日後の日時を計算
now.setTime(now.getTime() + (30 * 24 * 60 * 60 * 1000));

// Cookieの有効期限を設定
document.cookie = "username=John Doe; expires=" + now.toUTCString();

上記のコードでは、まず現在の日時を取得し、それに30日分のミリ秒を加算することで30日後の日時を計算しています。そして、`toUTCString()`メソッドを使用して、日時をUTC形式の文字列に変換し、Cookieの有効期限として設定しています。

参考資料

関連QA

  1. Q: Cookieの有効期限を設定しないとどうなる?
    A: Cookieの有効期限を設定しないと、ブラウザが閉じられた時点でCookieは削除されます。このようなCookieは「セッションCookie」と呼ばれます。
  2. Q: Cookieに保存できるデータ量に制限はある?
    A: はい、Cookieに保存できるデータ量はブラウザによって制限されています。一般的には、4KB程度が上限とされています。
  3. Q: Cookieはセキュリティ的に安全?
    A: Cookieはユーザーのコンピュータに保存されるため、セキュリティリスクが存在します。重要な情報をCookieに保存する場合は、暗号化などのセキュリティ対策を講じる必要があります。

その他の参考記事:JavaScript クッキー