Session和Cookie

一、HTTP協(xié)議

是規(guī)定瀏覽器與web服務器如何通訊的一組規(guī)定,是無狀態(tài)協(xié)議,一旦數(shù)據(jù)交換完畢,客戶端與服務器端的連接就會關閉,再次交換數(shù)據(jù)需要建立新的連接。這就意味著服務器無法從連接上跟蹤會話。

二、會話

指用戶登錄網(wǎng)站后的一系列動作,會話跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。常用的會話跟蹤技術是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務器端記錄信息確定用戶身份

三、cookie

  • 客戶端請求服務器,如果服務器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie??蛻舳藭袰ookie保存起來。當瀏覽器再請求該網(wǎng)站時,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態(tài)。
    注意:(cookie所聲明的作用范圍大于等于將要請求的資源所在的位置,才會把該cookie附在請求資源的HTTP請求頭上發(fā)送給服務器)
    例如:/user/login 時生成了cookie,則在/user下的地址訪問時都可以發(fā)送cookie到服務器
  • 會話cookie和持久cookie
    前者cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。一般保存在內(nèi)存里而非硬盤
    后者是設置了過期時間,瀏覽器就會把cookie保存到硬盤上,關閉后再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間。存儲在硬盤上的cookie可以在瀏覽器的不同進程間共享。
  • cookie不可以跨域名

四、session

  • 服務器將某些信息以session形式保存在服務器上,返回到瀏覽器一個sessionId,瀏覽器以cookie形式進行保存。下一次訪問時,服務器會先從請求中檢查是否有sessionid并且尋找與之對應的session,如果找不到會新建一個session。
  • session在服務器的默認保存時間是30分鐘,過期則會銷毀

五、兩者的區(qū)別

1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,考慮到安全應當使用session。
3、session會在一定時間內(nèi)保存在服務器上。當訪問增多,會比較占用你服務器的性能
4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中

六、禁用cookie時如何保存session

1、重寫url:將sessionid附加在url后
2、表單隱藏數(shù)據(jù)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容