Design News

網頁設計新知

Cookie、Session的差別是什麼?

Aug 29, 2023
目錄

兩個易混淆的功能大解析

每當瀏覽網頁時總是會被問是否同意使用Cookie?啟用了會發生什麼事情呢?Session又是什麼?

Cookie是什麼

Cookie的主要目的是在用戶訪問網頁時追蹤狀態、儲存用戶信息、記錄用戶行為等。
幫助網頁記住用戶的登錄狀態、記住偏好設置、追蹤瀏覽行為,並在用戶訪問同一網頁時提供個性化的體驗。

Cookie通常包含以下內容:

  • 名稱(Name):用於識別Cookie的名稱。
  • 值(Value):儲存在Cookie中的數據值。
  • 過期時間(Expires):指定Cookie何時過期並被刪除。
  • 域(Domain):指定可以訪問Cookie的網域。
  • 路徑(Path):指定可以訪問Cookie的路徑。
  • 安全標誌(Secure):表示只有在安全的HTTPS連接中才能發送Cookie。


Cookie是在客戶端(瀏覽器)儲存的,因此用戶可以看到和修改儲存在其瀏覽器中的Cookie。
由於Cookie包含一些用戶數據,因此隱私保護是一個重要的考慮因素。
在合規的情況下,網頁應該在使用Cookie前提供相應的隱私政策和通知。
 

Session是什麼

Session是一種在伺服器端儲存數據的機制,用於在一個用戶和網頁之間保持狀態。
它可以用來儲存和管理用戶的數據,例如登錄狀態、購物車內容、用戶偏好等。
Session基於用戶的每次訪問,將數據儲存在伺服器上,而不是儲存在用戶的瀏覽器中。

Session的主要特點包括:

  • 伺服器端儲存:Session數據儲存在伺服器上,而不是儲存在用戶的瀏覽器中,因此用戶無法直接訪問或修改Session數據。
  • 唯一識別:每個用戶的Session ID都是唯一的,通常是隨機生成的,用於識別不同的Session。
  • 狀態保持:通過Session,網頁可以保持用戶的狀態,從而實現用戶登錄狀態、購物車內容等的持久保存。
  • 隨會話失效:Session通常有一個過期時間,稱為Session Timeout,一旦用戶一段時間內沒有訪問網頁,該Session數據將被清除。


伺服器端儲存的Session數據可能會導致伺服器的負擔增加,特別是在處理大量用戶時。
另外,由於Session數據儲存在伺服器上,它不能被不同伺服器間共享,這可能在分佈式系統中產生一些挑戰。
 

Cookie、Session的比較

Cookie和Session都是用於在網頁和用戶之間儲存數據的機制,但它們在工作方式、用途和特點上有一些差異。

工作方式:

Cookie:在用戶的瀏覽器中儲存數據的小文本文件。伺服器將Cookie信息發送給瀏覽器,瀏覽器將其儲存,然後在每次訪問相同網頁時將Cookie附加到請求中發送給伺服器。
Session:在伺服器端儲存數據的機制。伺服器為每個用戶創建一個唯一的Session,並在伺服器上儲存用戶數據,用戶的每次訪問都帶著Session ID。

用途:

Cookie:用於記住用戶的登錄狀態、儲存偏好設置、追蹤瀏覽行為等。通常用於持久性數據儲存。
Session:用於儲存和管理用戶的狀態和數據,如登錄狀態、購物車內容等。通常用於暫時性數據儲存,只在用戶的會話期間有效。

儲存位置:

Cookie:儲存在用戶的瀏覽器中。
Session:儲存在伺服器端,通常是在伺服器的內存或數據庫中。

安全性:

Cookie:儲存在用戶瀏覽器中,可以被用戶查看和修改,因此可能不適合儲存敏感信息。
Session:數據儲存在伺服器端,用戶無法直接訪問或修改,因此可以用於儲存敏感信息。

隱私:

Cookie:由於Cookie儲存在用戶瀏覽器中,可能會引發隱私問題,特別是用於追蹤用戶行為。
Session:Session數據儲存在伺服器端,不會引發類似的隱私問題。

持續性:

Cookie:可以設定過期時間,可以是臨時的(會話Cookie),也可以是持久的(在指定時間之前有效)。
Session:通常在用戶會話結束時被清除。

總的來說,選擇使用Cookie還是Session取決於需求,如需要持久性儲存或臨時性儲存、隱私保護等。在某些情況下,Cookie和Session可以一起使用,以滿足不同的需求。

參考資料:Difference Between Cookie and Session