インターネット技術の継続的な発展により、Web サイト上で情報を閲覧したり、買い物をしたり、支払いをしたり、その他の行動を行うことが一般的になってきました。ユーザーが Web サイトを閲覧しやすいように、Web サイトのサーバーはユーザーのブラウザにデータを保存し、次回ユーザーが Web サイトにアクセスしたときに、そのデータがサーバーで抽出されて使用されます。データを保存するためのメカニズムの 1 つが Cookie です。では、Cookie はどこに保存されるのでしょうか?この記事では、Cookie が保存される場所について説明し、いくつかのコード例を示します。
- Cookie の保存場所
ブラウザはクライアント側に Cookie を保存するため、Cookie の保存場所は特定のブラウザの実装によって決まります。ブラウザごとに Cookie の保存場所も異なります。主流のブラウザでは、Cookie が保存される場所は次のとおりです:
- Chrome: Cookie 情報はユーザーのコンピュータ上の %AppData%LocalGoogleChromeUser DataDefaultCookies ファイルに保存されます;
- Firefox: Cookie 情報はユーザーのコンピュータの %AppData%RoamingMozillaFirefoxProfilesXXXX.defaultcookies.sqlite に保存されます;
- Safari: Cookie 情報はユーザーのコンピュータの ~/Library/Cookies/cookies.binarycookies に保存されます;
# Edge: Cookie 情報は %AppData%LocalMicrosoftEdgeUser DataDefaultCookies に保存されます; - Internet Explorer: Cookie 情報は C:Users usernameAppDataRoamingMicrosoftWindowsCookiesLow に保存されますが、Windows 10 以降のシステムでは段階的に非推奨になりました。
-
つまり、ほとんどの場合、Cookie 情報はリモート サーバーではなくローカル ファイルに保存されます。
JavaScript での Cookie の操作-
JavaScript での Cookie の操作方法を紹介します。一般に、Cookie の読み取り、追加、削除は document.cookie 属性に基づいて行われます。
Cookie の値を読み取る:
JavaScript では、次の方法で Cookie を読み取ることができます:
function getCookie(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)){
return decodeURIComponent(arr[2]);
}else{
return null;
}
}
ログイン後にコピー
正規表現を使用して、探している Cookie の名前と一致させます。一致するものが見つかった場合は、名前に対応する値が返されます。 Cookie 値には中国語などの非 ASCII 文字が含まれている可能性があるため、(decodeURIComponent() メソッドを使用して) デコードする必要があることに注意してください。
Cookie の追加:
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=/";
}
ログイン後にコピー
このうち、name は Cookie の名前を表し、value は Cookie の値を表します。 Cookie、duration は Cookie の有効期間 (日数) を表します。ここでは Date オブジェクトを使用して Cookie の有効期限を計算し、Cookie 情報を document.cookie に保存します。
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=/";
}
}
ログイン後にコピー
このうち、name は Cookie の名前を表します。ここでは、Cookie の有効期限が過去の時刻に設定され、document.cookie に保存されます。
Node.js での Cookie 操作
Node.js では、サードパーティのライブラリを使用して Cookie を簡単に操作できます。ここでは、Cookie パーサー ライブラリを例として、Node.js で Cookie を追加、読み取り、削除する方法を紹介します。
Cookie パーサーをインストールします:
ターミナルに次のコマンドを入力して、Cookie パーサーをインストールします:
npm install cookie-parser
ログイン後にコピー
Cookie を追加します:
Node.js で
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');
});
ログイン後にコピー
このうち、name は Cookie の名前、value は Cookie の値、maxAge は Cookie の有効期間 (ミリ秒単位) を表します。
Cookie の読み取り:
Node.js では、次の方法で Cookie を読み取ることができます:
app.get('/getCookie',function(req,res){
var value=req.cookies.name;
res.send('cookie value:'+value);
});
ログイン後にコピー
このうち、name は Cookie の名前を表します。
Cookie の削除:
Node.js では、次の方法で Cookie を削除できます:
app.get('/clearCookie',function(req,res){
res.clearCookie('name');
res.send('cookie cleared');
});
ログイン後にコピー
このうち、name は Cookie の名前を表します。
結論-
この記事では、JavaScript と Node.js における Cookie の保存場所と Cookie の操作方法について説明します。 Cookie 情報は暗号化されないため、機密データは Cookie に直接保存せず、暗号化する必要があることに注意してください。さらに、Cookie の有効期限切れによって引き起こされるセキュリティ上の問題を避けるために、Cookie の有効期間にも注意する必要があります。
以上がCookie の場所を確認します。Cookie は正確にどこに保存されているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。