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