Cookie和Session的區別及詳解

概述:會話(Session)跟蹤是Web程序中經常使用的技術,用來跟蹤用戶的整個會話過程,經常使用的會話跟蹤技術是Cookie和Session.Cookie經過在客戶端記錄信息肯定用戶身份,Session經過在服務器記錄信息肯定用戶身份。下面簡述Cookie與Session機制,並比較說明何時不能用Cookie,何時不能用Session。web

1.一、Cookie機制瀏覽器

在程序中,會話跟蹤是很重要的事情,理論上,一個用戶的全部請求操做都應該屬於同一個會話,而另外一個用戶的全部請求操做應該屬於另一個會話,兩者不能混淆。例如,用戶A在超市購買的任何商品都應該放在A的購物車內,不管是用戶A什麼時間購買的,這都是屬於統一會話的,不能放入用戶B的購物車內,這不屬於同一會話。服務器

而Web應用程序是使用HTTP協議傳輸數據的。HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的鏈接就會關閉,再次交換數據須要從新簡歷新的鏈接,這就意味着服務器沒法從鏈接上跟蹤會話,即用戶A購買了一件商品放入購物車內當再次購買商品是服務器已經沒法判斷該購買行爲是屬於用戶A的會話仍是用戶B的會話了,要跟蹤會話,必須引入一種機制。cookie

Cookie就是這種機制,它能夠彌補HTTP協議無狀態的不足,在Session出現以前,基本上全部的網站都採用Cookie來跟蹤會話。session

1.二、Session機制網站

除了使用Cookie,web應用程序還常常使用Session來記錄客戶端狀態,Session是服務器端使用的一種記錄客戶端狀態的機制,使用上比cookie簡單一些,相應的頁增長了服務器的存儲壓力。io

1.2.一、什麼是Session服務器端

Session是另一種記錄客戶狀態的機制,不一樣的是Cookie保存在客戶端瀏覽器中,而session保存在服務器上,客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種i形式記錄在服務器上。這就是Session,客戶端瀏覽器再次訪問時只須要從該Session中查找客戶的狀態就能夠了。簡歷

若是說Cookie機制是經過檢查客戶身上的「通行證」來肯定客戶身份的話,那麼Session機制就是經過檢查服務器上的「客戶明細表」來肯定客戶身份的,Session至關於程序在服務器上創建的一份客戶檔案,客戶來的時候只須要查詢客戶檔案表就能夠了。請求

相關文章
相關標籤/搜索