1. 程式人生 > >session和cookie的區別

session和cookie的區別

class qps 超時 發送 機器 路徑 headers http 形式

前言

HTTP是一種無狀態的協議,為了分辨鏈接是誰發起的,需自己去解決這個問題。不然有些情況下即使是同一個網站每打開一個頁面也都要登錄一下。而Session和Cookie就是為解決這個問題而提出來的兩個機制。

cookie

Cookies是服務器在本地機器上存儲的小段文本並隨每一個請求發送至同一服務器,是在客戶端保持狀態的方案

Cookie的主要內容包括:名字,值,過期時間,路徑和域。使用Fiddler抓包就可以看見,比方說我們打開百度的某個網站可以看到Headers包括Cookie,如下:

  1. cookie: pgv_pvi=1122913280; RK=kNDBnwglyN; _qpsvr_localtk=0.5169928916729987; pgv_si=s5336803328; ptisp=cm; ptcz=961722ff3aa4606cbb3ad37fb2eef69bc6b1fdfbebdc926c6adee05dbf49504e; uin=o0515698513; skey=@ryvW1vZvC; pt2gguin=o0515698513; p_uin=o0515698513; pt4_token=1GJeMhmDgMbYUZ1ZeVI8VFvlxEohQ7YYhPlZelsy25U_; p_skey=ZKKSaUADAfYYeMcEQdamWBIvm*LkedmgPw5TCBjRivA_

key, value形式的存在,過期時間可設置的,如不設,則瀏覽器關掉就消失了,存儲在內存當中,否則就按設置的時間來存儲在硬盤上的,過期後自動清除

session

保存在服務端的一個鍵值對

瀏覽器第一次發送請求時,服務器自動生成了session來標記這個用戶,並將其通過響應發送到瀏覽器。瀏覽器第二次發送請求會將前一次服務器響應中的Session放在請求中一並發送到服務器上,服務器從請求中提取出Session ID,並和保存的所有Session ID進行對比,找到對應的用戶
一般這個值會有個時間限制,超時後毀掉這個值,默認30分鐘。
當用戶在應用程序的 Web頁間跳轉時,存儲在 Session 對象中的變量不會丟失而是在整個用戶會話中一直存在下去。

session和cookie的關聯
Session的實現方式和Cookie有一定關系。建立一個連接就生成一個session,打開幾個頁面就好幾個了,這裏就用到了Cookie,把session 存在Cookie中,每次訪問的時候將Session 帶過去就可以識別了.

session和cookie的區別