cookie的存在方式
cookie是瀏覽器支持的本地存儲方式,存儲形式是dict(鍵值對的形式),存儲在瀏覽器中。
為什么會存在cookie
因為http是無狀態的協議,服務器在接受到瀏覽器的請求之后,服務器直接返回內容給瀏覽器,并不管這個請求是誰請求的。
為了知道這個請求是誰發送的,在瀏覽器向服務器發出請求后,服務器會分配給瀏覽器一個ID,同時把這個ID返回給瀏覽器。
此時瀏覽器會把這個ID保存在cookie當中,在下一次請求時,瀏覽器會帶著這個ID向服務器發起請求。此時服務器就知道是誰發送的這個請求。
session
為了解決安全隱患,因為不能把所有東西存在本地,引申出了session。
根據用戶名和密碼,生成一段隨機的字符串,這個字符串是有過期時間的。session是服務器生成的,保存在服務器上。當瀏覽器向服務器發起登陸請求時,瀏覽器帶著這個隨機的生成的字符串發送給瀏覽器,瀏覽器將這個session保存在cookie中。在瀏覽器下一次請求服務器時,帶著這個sessionid去請求,服務器將在數據庫中查詢這個sessionid是否存在。
區別
具體來說cookie機制采用的是在客戶端保持狀態的方案,而session機制采用的是在服務器端保持狀態的方案。
1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能??紤]到減輕服務器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中