揭開cookie的秘密:它們究竟存在何處?
在日常網站使用中,我們經常會與cookie打交道,例如記住密碼、購物車、廣告推薦等,而cookie的作用則無法忽略。那麼,cookie究竟是什麼?它們存儲於何處?我們今天就來揭開cookie的秘密。
什麼是cookie?
cookie是一種儲存在使用者電腦上的小數據文件,通常由網站傳送給瀏覽器,然後瀏覽器會在後續請求中將其發送回相應的伺服器。它們通常用於儲存使用者的會話資訊、購物車內容、喜好設定等等,以便於下次造訪網站時,可以自動識別使用者並載入相應的資料。
究竟存在何處?
在說到cookie存放的位置時,我們需要先了解HTTP協定的基本知識。在HTTP協定中,有兩種不同的儲存方式:會話儲存和持久性儲存。
會話儲存的意思是,當使用者關閉瀏覽器視窗時,所有的cookie都會從電腦中刪除。這意味著session cookie 只會存活於使用者目前會話中。如果使用者關閉了瀏覽器,session cookie也就被刪除了。
下面是一個簡單的例子,示範如何使用Express框架建立一個會話cookie:
const express = require('express') const cookieParser = require('cookie-parser') const app = express() app.use(cookieParser()) app.get('/', (req, res) => { res.cookie('username', 'john doe', { httpOnly: true }) res.send(`Hello World!`) }) app.listen(3000, () => { console.log(`Example app listening at http://localhost:3000`) })
在這個例子中,我們使用了cookie-parser
的中間件,將會話cookie儲存在瀏覽器記憶體中。如果使用者關閉了瀏覽器窗口,則該cookie將被刪除。
持久cookie不同於會話cookie,它們可以設定過期時間,即使關閉了瀏覽器,它們仍然會在電腦上存儲,直到過期時間到達或手動刪除。
下面是一個例子,示範如何使用Express框架建立一個持久cookie:
const express = require('express') const cookieParser = require('cookie-parser') const app = express() app.use(cookieParser()) app.get('/', (req, res) => { res.cookie('username', 'john doe', { maxAge: 60 * 60 * 1000, httpOnly: true }) res.send(`Hello World!`) }) app.listen(3000, () => { console.log(`Example app listening at http://localhost:3000`) })
在這個例子中,我們將maxAge
選項設定為1個小時,這意味著該cookie將在1小時後過期。當過期時間到達後,它將自動從電腦中刪除。
結論
透過上面的介紹,我們可以得知,瀏覽器可以儲存會話cookie和持久性cookie。會話cookie儲存在瀏覽器的記憶體中,而持久cookie則儲存在使用者電腦的硬碟上。一旦過期時間到達或使用者手動刪除,持久cookie也將被刪除。因此在應用程式設計中,需要謹慎考慮cookie的類型和生命週期,確保應用程式的正常運作。
以上是揭開cookie的秘密:它們究竟存在何處?的詳細內容。更多資訊請關注PHP中文網其他相關文章!