會話(session)跟蹤是web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是cookie與session。cookie通過在客戶端記錄資訊確定使用者身份,session通過在伺服器端記錄資訊確定使用者身份。
一、什麼是cookie
cookie意為「甜餅」,是由w3c組織提出,最早由netscape社群發展的一種機制。目前cookie已經成為標準,所有的主流瀏覽器如ie、netscape、firefox、opera等都支援cookie。
由於http是一種無狀態的協議,伺服器單從網路連線上無從知道客戶身份。怎麼辦呢?就給客戶端們頒發乙個通行證吧,每人乙個,無論誰訪問都必須攜帶自己通行證。這樣伺服器就能從通行證上確認客戶身份了。這就是cookie的工作原理。
cookie實際上是一小段的文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用response向客戶端瀏覽器頒發乙個cookie。客戶端瀏覽器會把cookie儲存起來。當瀏覽器再請求該**時,瀏覽器把請求的**連同該cookie一同提交給伺服器。伺服器檢查該cookie,以此來辨認使用者狀態。伺服器還可以根據需要修改cookie的內容。
二、什麼是session
session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。
如果說cookie機制是通過檢查客戶身上的「通行證」來確定客戶身份的話,那麼session機制就是通過檢查伺服器上的「客戶明細表」來確認客戶身份。session相當於程式在伺服器上建立的乙份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。
三、cookie與session兩者的區別
1、資料存放位置不同:
cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、安全程度不同:
cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。
3、效能使用程度不同:
session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。
4、資料儲存大小不同:
單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie,而session則儲存與服務端,瀏覽器對其沒有限制。
5、會話機制不同
session會話機制:
session會話機制是一種伺服器端機制,它使用類似於雜湊表(可能還有雜湊表)的結構來儲存資訊。
cookies會話機制:
cookie是伺服器儲存在本地計算機上的小塊文字,並隨每個請求傳送到同一伺服器。 web伺服器使用http標頭將cookie傳送到客戶端。在客戶端終端,瀏覽器解析cookie並將其儲存為本地檔案,該檔案自動將來自同一伺服器的任何請求繫結到這些cookie。
cookie與session的關聯
前提 cookie沒有被禁用。當用瀏覽器登入到某 伺服器時,先找對應的cookie檔案,當首次訪問是當然沒有cookie檔案,所以在請求頭部中沒有cookie的內容,即在請求頭部中沒有類似cookie jsessionid 的內容,這時當請求到達伺服器後,伺服器看請求頭中沒有jsessionid值,...
session與cookie的區別
讓我們用幾個例子來描述一下cookie和session機制之間的區別與聯絡。筆者曾經常去的一家咖啡店有喝5杯咖啡免費贈一杯咖啡的優惠,然而一次性消費5杯咖啡的機會微乎其微,這時就需要某種方式來紀錄某位顧客的消費數量。想象一下其實也無外乎下面的幾種方案 1 該店的店員很厲害,能記住每位顧客的消費數量,...
session與cookie的區別
1 session儲存在伺服器,客戶端不知道其中的資訊 cookie儲存在客戶端,伺服器能夠知道其中的資訊。2 session中儲存的是物件,cookie中儲存的是字串。3 session不能區分路徑,同乙個使用者在訪問乙個 期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果...