返回部落格

Cookie 簡介:理解與操作 JavaScript Cookie

Cookie 簡介:理解與操作 JavaScript Cookie

瀏覽器 Cookie,或 HTTP Cookie,是由微小數據片段組成的文字檔案。網站使用這些資訊來追蹤使用者的歷程,從而提供量身定制的功能並改善其瀏覽體驗。Cookie 最多可儲存 4096 位元組的數據。然而,根據瀏覽器的不同,我們在每個網域中能新增的 Cookie 數量是有限的。

對於任何網路使用者來說,基本了解 HTTP Cookie 都是至關重要的,無論您只是為了好玩而瀏覽,還是以此謀生。本指南將 詳細向您介紹 Cookie 及其各種類型。我們的重點是幫助您理解和使用 JavaScript Cookie.

我們開始吧!

先決條件

要學習本教學,您必須具備:

開始使用 JavaScript Cookie

使用 JavaScript Cookie 非常簡單。它允許您毫不費力地建立、編輯和讀取 Cookie。此外,我們可以使用 Document 物件的 cookie 屬性來操作和限制 Cookie 的屬性,例如名稱、值和長度等等。

Cookie 的類型

首先,讓我們來看看不同類型的 Cookie:

  1. 第一方 Cookie

每當使用者造訪網站時,就會建立並儲存這些 Cookie。它允許網站擁有者深入了解使用者的數據,並為他們提供更好的瀏覽體驗。

  1. 持久性 Cookie

對於這類 Cookie,發行者會指定一個過期日期。因此,它的使用時間要長得多。這意味著即使您關閉瀏覽器,Cookie 仍會保留在其中。此外,每次您造訪建立該 Cookie 的網站時,數據都會傳回給發行者。

  1. 工作階段 Cookie

這些 Cookie 只是暫時的,並在瀏覽器開啟時儲存在其記憶體中。當您關閉瀏覽器時,Cookie 就會從瀏覽器的歷程記錄中刪除,從而降低了安全風險。您不需要指定過期日期。

  1. 第三方 Cookie

第三方 Cookie 是由您目前未造訪的網站所建立的。大多數情況下,這些 Cookie 有助於追蹤點擊廣告的使用者,並將其與推薦他們的網域關聯起來。

建立 Cookie

我們可以使用兩種方法來建立 Cookie:

  1. 傳送 Set-CookieHTTP 回應標頭中。根據網頁伺服器所使用的技術,您可以使用工具和函式庫來管理 Cookie 標頭。Cookie 可以包含過期日期等資訊,以及安全指令和 HttpOnly 旗標等安全功能。

  • HttpOnly: 這表示瀏覽器無法讀取或修改 Cookie。

  • Secure: 這表示 Cookie 只能透過 HTTPS 傳送。

  1. 使用 JavaScript 的 document.cookie 屬性,我們可以建立、讀取和刪除 Cookie。

步驟 1 — 建立 Cookie

接下來,我們將示範建立 JavaScript Cookie 的過程。Cookie 以名稱-值對格式儲存:

在上述 Cookie 中, UserName 是 Cookie 的名稱,而 CloudSigma 是儲存在其中的值。

Cookie 具有過期日期。預設情況下,它會在關閉瀏覽器時自動刪除。您也可以為 Cookie 新增過期日期:

預設情況下,Cookie 屬於目前頁面。然而,我們也可以藉助 path 參數來指定 Cookie:

  • Cookie Max-Age 與 Cookie Expire

根據您的需求,您可以使用這兩種策略來設定 Cookie 的過期日期。兩者之間的區別在於 expires 設定了刪除 Cookie 的過期日期。相反地, max-Age 以秒為單位設定 Cookie 被刪除的時間。遺憾的是, max-age 並非所有瀏覽器都支援。

以下為設定 Cookie 的範例,使用 expires 以及 max-age:

Expires:

Max-age :

步驟 2 — 讀取 Cookie

document.cookie 屬性會傳回一個字串。如果有兩個或多個 Cookie,我們使用分號( ;)和空格來分隔它們。

我們使用 split() 方法從 Cookie 列表中提取單個 Cookie。此方法將列表分解為單個名稱和值對。完成後,您就可以搜尋要讀取的目標 Cookie:

讓我們來了解我們在程式碼中建立的函數:

函數名稱 描述
setCookie() 建立 Cookie
getCookie() 讀取 Cookie 的值
checkCookie() 驗證 UserName 是否已設定。

在下一步中,我們將學習如何更新 Cookie。

步驟 3 — 更新 Cookie

我們可以為 Cookie 屬性設定新值。在我們的範例中,讓我們將使用者的訂閱從月度方案更新為季度方案。

讓我們將 max-age 屬性(屬於 UserName Cookie)從 30 天更新為 180 天:

步驟 4 — 刪除 Cookie

使用相同名稱重新定義 Cookie 將會刪除您想要清除的 Cookie。我們可以透過將 max-age 屬性設定為: 0:

此外,如果 Cookie 具有指定的路徑,請透過指定該路徑來刪除它:

結論

Cookie 對於網站的正常運作和功能至關重要。在這篇入門教學中,我們詳細討論了 Cookie 及其不同的類型。此外,我們還透過一個範例學習了如何使用 Cookie。既然您已經可以熟練地使用 JavaScript Cookie,請開始建立自訂的 Cookie,以學習和探索更多關於此主題的內容。

此外,您可以從我們的部落格中探索許多關於 JavaScript 和網頁開發的教學:

祝您編程愉快!

author

Preslav Dobrev

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。