瀏覽器 cookie 主要保存服務端發送給用戶瀏覽器和頁面調用 document.cookie=?
所設置的小片數據。瀏覽器在磁盤上保存 cookie 而且在下一次請求時發送給相同的服務器。html
session(也稱爲會話),包含 session cookie 和 session content 兩部分,客戶端經過 session cookie 記錄會話標識,服務端經過會話標識找到對應的 session content。mysql
cookie 和 session 的初衷是不一樣,cookie 最初是廣泛使用客戶端存儲方案,session 最初是想維持用戶登陸狀態。session 巧妙的應用了服務端設置Set-Cookie
響應頭部的方式和網絡請求攜帶Cookie
請求頭部的特性。redis
會話管理
用戶登陸狀態、購物車列表等sql
個性化設置
用戶偏好,用戶主題等mongodb
跟蹤行爲
用戶行爲分析瀏覽器
咱們能夠經過控制檯查看到應用cookie內容,控制檯是以表格形式展現:安全
name服務器
valuecookie
expires
過時時間,如國不設置,默認爲Session(瀏覽器關閉後銷燬)網絡
domain
可訪問cookie的域名,支持泛域名的配置(例如 .jaylin.wang)
path
可訪問cookie的path
httpOnly
是否只容許服務端讀取cookie內容
secure
是否加密處理
儘可能減小 cookie 中的存儲數據
因爲 cookie 每次會在請求頭部,大量的 cookie 數據會致使 http 請求的速度。在現代瀏覽器中,咱們能夠首選Web Storage API (localStorage 和 sessionStorge) 和 IndexedDB
不適用 cookie 中保存敏感信息
雖然cookie支持 Secure 和 httpOnly兩種模式,但瀏覽器不敢保證 cookie 絕對安全。黑客能夠經過XSS注入和CSRF利用cookie中的信息。
服務端 session 默認是存儲在內存之中,可是應用過程當中,咱們也會使用 mysql、redis、mongodb 等存儲方案去持久化 session。
夜以深,這篇對 cookie 和 session 的輕描淡寫到此爲止吧,但願能給Web入門同窗帶來幫助,更但願有深刻理解的朋友多多交流,good night~~
文章持續更新地址:http://jaylin.wang/2017/sessi...