瀏覽器和應用服務交互,一般都是通過 Http 協議交互的。Http 協議是無狀態的,瀏覽器和服務器交互完數據,連接就會關閉,每一次的數據交互都要重新建立連接。即服務器是無法辨別每次是和哪個瀏覽器進行數據交互的。
為了確定會話中的身份,就可以通過創建 session 或 cookie 進行標識。
兩者區別:
- session 是在服務器端記錄信息;cookie 是在瀏覽器端記錄信息
- session 保存的數據大小取決於服務器的程序設計,理論值可以做到不限;單個 cookie 保存的數據大小不超過4Kb,大多數瀏覽器限制一個站點最多20個cookie
- session 可以被服務器的程序處理為 key - value 類型的任何對象;cookie 則是存在瀏覽器里的一段文本
- session 由於存在服務器端,安全性高;瀏覽器的 cookie 可能被其他程序分析獲取,所以安全性較低
- 大量用戶會話服務器端保存大量 session 對服務器資源消耗較大;信息保存在 cookie 中緩解了服務器存儲用信息的壓力
一般實際使用中,都是把關鍵信息保存在 session 里,其他信息加密保存到cookie中。
- Java 自學指南
- Java 面試題匯總PC端瀏覽【點這里】
- Java知識圖譜
- Java 面試題匯總小程序瀏覽,掃二維碼