インターネットの開発により、Webサイトはユーザーが閲覧するとブラウザにデータを保存します。そのため、ユーザーは次回訪問時にコンテンツをより速く読み込むことができます。このデータストレージの方法は、Cookieと呼ばれます。それで、クッキーはどこに保管されていますか?さまざまなブラウザに保存されているCookieの場所を詳細に探索します。
ブラウザはクライアントにCookieを保存し、特定のストレージの場所はブラウザの実装に依存します。いくつかの主流ブラウザのCookieストレージの場所は次のとおりです。
全体として、Cookieは通常、リモートサーバーではなくローカルファイルに保存されます。
JavaScriptでは、Cookieの動作は主にdocument.cookie属性を介して行われます。 JavaScriptを使用してCookieを読み取り、追加、削除する方法の例を次に示します。
Cookieは、次の機能を介してJavaScriptで読むことができます。
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg)) {
return decodeURIComponent(arr[2]);
} else {
return null;
}
}
この関数は、正規表現を使用して、Cookieを指定された名前と一致させ、対応する値を返します。 Cookie値には中国語または他の特殊文字が含まれている可能性があるため、デコードにはdecodeuricomponent()が必要であることに注意してください。
JavaScriptにCookieを追加するには、次のコードを使用できます。
function setCookie(name, value, duration) {
var exp = new Date();
exp.setTime(exp.getTime() + duration * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/";
}
この関数は3つのパラメーターを受け入れます。名前はCookieの名前を表し、値はCookieの値を表し、期間はCookieの有効期間(日数)を表します。有効期限を計算し、Cookieをdocument.cookieに保存します。
JavaScriptでは、Cookieを削除する方法は次のとおりです。
function deleteCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/";
}
}
この関数は、クッキーの有効期限を過去に設定し、すぐに失効させます。
node.jsでは、サードパーティライブラリを使用してCookieを操作できます。次の例では、Cookie-Parserライブラリを使用して、Cookieを追加、読み取り、削除します。
ターミナルに次のコマンドを入力して、クッキーパーサーをインストールします。
npm install cookie-parser
node.jsでは、Cookieを追加するためのコードは次のとおりです。
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.get('/setCookie', function(req, res) {
res.cookie('name', 'value', { maxAge: 900000, httpOnly: true });
res.send('cookie added');
});
このコードは、90万ミリ秒間有効な「値」の値を持つ「名前」という名前のCookieをリクエストに設定し、HTTPonlyフラグが設定されています。
Cookieを読むためのコードは次のとおりです。
app.get('/getCookie', function(req, res) {
var value = req.cookies.name;
res.send('cookie value: ' + value);
});
Cookieを削除するためのコードは次のとおりです。
app.get('/clearCookie', function(req, res) {
res.clearCookie('name');
res.send('cookie cleared');
});
この記事では、Cookieがどこに保存されているか、JavaScriptとnode.jsでCookieを操作する方法について説明します。 Cookieは暗号化されていないため、敏感な情報をCookieに直接保存しないでください。期限切れのデータによって引き起こされるセキュリティリスクを回避するために、Cookieの有効期間が合理的に設定されていることを確認してください。
関連タグ:
cookie