當前位置: 首頁> 最新文章列表> 探索Cookie存儲位置:它們存儲在哪些地方?

探索Cookie存儲位置:它們存儲在哪些地方?

M66 2025-07-01

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用戶名AppDataRoamingMicrosoftWindowsCookiesLow 中。注意,Windows 10及之後的版本逐漸棄用了此方法。

總體來說,Cookie通常存儲在本地文件中,而非遠程服務器。

JavaScript中的Cookie操作

在JavaScript中,Cookie的操作主要通過document.cookie 屬性來完成。以下是如何使用JavaScript讀取、添加和刪除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值可能包含中文或其他特殊字符,需使用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的值,duration 表示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=/";
  }
}

此函數將Cookie的過期時間設置為過去的時間,從而使其立即過期。

Node.js中的Cookie操作

在Node.js中,我們可以使用第三方庫來操作Cookie。以下示例使用cookie-parser 庫來添加、讀取和刪除Cookie。

安裝cookie-parser

在終端中輸入以下命令來安裝cookie-parser:

 npm install cookie-parser

添加Cookie

在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');
});

這段代碼在請求中設置了一個名為'name' 的Cookie,其值為'value',有效期為900000毫秒,並且設置了httpOnly標誌。

讀取Cookie

讀取Cookie的代碼如下:

 app.get('/getCookie', function(req, res) {
  var value = req.cookies.name;
  res.send('cookie value: ' + value);
});

刪除Cookie

刪除Cookie的代碼如下:

 app.get('/clearCookie', function(req, res) {
  res.clearCookie('name');
  res.send('cookie cleared');
});

結論

本文介紹了Cookie的存儲位置,以及如何在JavaScript和Node.js中操作Cookie。需要特別注意的是,Cookie不進行加密,因此不應將敏感信息直接存儲在Cookie中。確保合理設置Cookie的有效期,以避免過期數據造成的安全風險。