隨著網路科技的不斷發展,我們在網站上瀏覽資訊、購物、付款等行為是司空見慣。而為了方便使用者瀏覽網站,網站伺服器會將一些資料保存在使用者的瀏覽器上,當使用者下次造訪該網站時,這些資料會被提取出來供伺服器使用。這種保存資料的一種機制就是cookie。那麼,cookie到底存放在哪裡呢?本文將會對cookie的儲存位置進行探討,並提供一些程式碼範例。
瀏覽器在客戶端保存cookie,因此cookie的儲存位置是由特定的瀏覽器實作方式決定的。不同的瀏覽器有不同的cookie儲存位置。在主流的瀏覽器中,cookie儲存的位置如下:
總之,在大多數情況下,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的值,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。這裡以cookie-parser這個函式庫為例,介紹如何在Node.js中新增、讀取、刪除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代表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的名稱。
本文介紹了cookie儲存位置的探討以及JavaScript和Node.js中的Cookie操作方法。需要注意的是,cookie資訊是不加密的,因此敏感資料不應該直接儲存在cookie中,而是應該進行加密處理。另外,需要注意cookie的有效期,以避免過期未清除導致的安全問題。
以上是探索cookie的所在地:它們究竟存放在哪裡?的詳細內容。更多資訊請關注PHP中文網其他相關文章!