cookie&session
Cookie
Cookie 是服務器發送到用戶瀏覽器并保存在本地的一小塊數據,它會在瀏覽器下次向同一服務器再發起請求時被攜帶并發送到服務器。
作用:
會話管理: 記錄用戶的登錄狀態、購物車內容等。
個性化: 存儲用戶的偏好設置,如語言、主題等。
追蹤: 用于分析用戶行為,進行廣告投放等。
特點:
存儲在客戶端: Cookie 存儲在用戶的瀏覽器中。
大小限制: 通常每個 Cookie 的大小限制為 4KB。
生命周期: 可以設置 Cookie 的過期時間,可以是會話級別的(關閉瀏覽器后失效)或持久性的(指定過期時間)。
安全性: 可以通過設置 HttpOnly 和 Secure 屬性來提高安全性,防止 XSS 和中間人攻擊。
創建和使用:
服務器通過 HTTP 響應頭 Set-Cookie 來創建 Cookie。
瀏覽器在后續請求中通過 Cookie 請求頭將 Cookie 發送回服務器。
示例:
Set-Cookie: sessionId=abc123; Expires=Wed, 09 Jun 2024 10:18:14 GMT; Secure; HttpOnly
2. Session
定義:
Session 是一種服務器端的狀態管理機制,用于在多個請求之間保持用戶狀態。
作用:
會話管理: 存儲用戶的登錄狀態、購物車內容等。
數據存儲: 存儲用戶相關的臨時數據,如表單數據、用戶偏好等。
特點:
存儲在服務器端: Session 數據存儲在服務器上,通常存儲在內存、數據庫或文件系統中。
會話標識: 通常使用一個唯一的會話 ID(Session ID)來標識用戶會話,這個 ID 通常通過 Cookie 傳遞給客戶端。
生命周期: 會話通常在用戶關閉瀏覽器或服務器端設置的超時時間后失效。
創建和使用:
服務器在用戶首次訪問時創建一個會話,并生成一個唯一的會話 ID。
服務器將這個會話 ID 通過 Cookie 發送給客戶端。
客戶端在后續請求中通過 Cookie 攜帶會話 ID,服務器根據會話 ID 查找對應的會話數據。
示例:
服務器創建會話并設置會話 ID:
Set-Cookie: sessionId=abc123; HttpOnly
客戶端請求時攜帶會話 ID:
Cookie: sessionId=abc123
3. Cookie 和 Session 的關系
依賴關系: Session 通常依賴于 Cookie 來傳遞會話 ID。
安全性: Session 比 Cookie 更安全,因為敏感數據存儲在服務器端,而不是客戶端。

浙公網安備 33010602011771號