瀏覽網頁常用的 HTTP(超文本傳輸協定)
是一種無狀態協定。
也就是收到請求就建立連結,
請求完後就斷開連結將資源釋放出來。
HTTP 只看請求的內容,
而不紀錄客戶端的「狀態」,
從任何客戶端發來的請求都一視同仁,
僅做出對請求對應的回覆。
隨著網路交互活動變得複雜,
客戶端需要與伺服器保持長期連線與互動,
程式設計師 Lou Montulli
在 1993 年發明了「cookie」,
也就是一小段紀錄客戶端狀態的文字檔案。
這段資訊會在客戶拜訪網站時由伺服器產生發送,
並由收到的瀏覽器負責儲存起來,
以便下次拜訪網站時使用。
cookie 就像號碼牌或置物櫃鑰匙,
是一個驗證身分的標誌,
有了這個 cookie,
我們就能在下次拜訪同樣網站時,
取得 cookie 上紀錄所對應的內容。
cookie 不但能讓我們取得客製化訊息,
更可以提高網站的訪問速度、
減少需要人工填寫的欄位,
為網站互動提供更多便利性。
不過隨著網路技術發展,
cookie 也漸漸帶來危害與濫用,
導致個人隱私外洩、
大量垃圾訊息等問題。
各瀏覽器與伺服器平台
目前也都在加強 cookie 安全性,
如使用簽章過的 Signed Cookie
,
或嘗試尋找比 cookie 更好的替代方案。
cookie 內包含以下屬性
name=value
(必要)
expires=date
(選項)
path=path
(選項)
domain=domain
(選項)
secure
(選項)