請描述 cookie, sessionStorage 和 localStorage 在瀏覽器中的 差異為何?
以下幾點為 cookie, sessionStorage 和 localStorage 主要的差異:
生命週期長短
- cookie:cookie 的預設行為是在瀏覽器關閉後會消失,但是可以自行透過 Expires 標明失效時間、 Max-Age 標明有效時間長度,讓 cookie 在瀏覽器關閉後能依然存在。
- sessionStorage:瀏覽器關閉後自動清除,甚至在相同網域的不同標籤頁之間也無法共享。
- localStorage:如果沒有手動去清除的話,會永久保存在瀏覽器。
資料儲存的大小
- cookie:4KB 左右。
- sessionStorage:依據不同瀏覽器 5MB~10MB。
- localStorage:依據不同瀏覽器 5MB~10MB。
使用的方式
-
cookie:cookie 會隨著 http 請求打到伺服器,會在第一次 client 發送請求後,sever 會在 response 的 header 加入
Set-Cookie
還有 response 加入 cookie,當 client 收到後會存在瀏覽器本地。 -
sessionStorage:使用 key-value 的形式儲存在瀏覽器本地。
-
localStorage:使用 key-value 的形式儲存在瀏覽器本地。