---
# System prepended metadata

title: Cookie/LocalStorage/SessionStorage
tags: [docs]

---

# Cookie/LocalStorage/SessionStorage

comment: 你給我附上參考程式碼，你當你在看文章做筆記是不是

## Cookie
為儲存小資料為主(4KB)，儲存在從伺服器傳來的資料中，會有一小部分為存放cookie，每次發送請求時，都會帶著cookie，在JS可以用`document.cookie`來設置cookie，可以設定消失的時間，但用`document.cookie`只能設定或更新一個 Cookie。

**程式碼:**
```javascript=
// 把所有的cookie輸出出來
console.log(document.cookie) 
// 把一個名為user，值為John放入cookie
document.cookie = "user=John"
```

**使用場景** : 保存使用者登陸狀態、紀錄或分析使用者行為。
## LocalStorage
可以將資料儲存在客戶端，用`key-value`的方式存取，有更大的存取空間(5MB)，除非手動刪除，不然會一直存在。

**程式碼:** `window.`可加可不加

```javascript=
//設定key和value
window.localStorage.setItem('key', value) 
//從key取出值來
const Value = window.localStorage.getItem('key') 
```

**使用場景** : 需長時間保存的資料、離線應用
## SessionStroage
可以將資料儲存在客戶端，用`key-value`的方式存取，有更大的存取空間(5MB)，只在當前的瀏覽器有效，關閉就會刪除。

**程式碼:** `window.`可加可不加

```javascript=
//設定key和value
window. sessionStorage.setItem('key', value)
//從key取出值來
const Value = window. sessionStorage.getItem('key') 
```

**使用場景** : 表單數據保留
## Check
可以按檢查->Application->選你所使用的東西，就可以看到儲存的情況。
![image](https://hackmd.io/_uploads/HJrn03oxyx.png)

## Reference
- https://www.explainthis.io/zh-hant/swe/cookie-sessionstorage-localstorage-difference
- https://medium.com/@bebebobohaha/cookie-localstorage-sessionstorage-%E5%B7%AE%E7%95%B0-9e1d5df3dd7f
- https://seanacnet.com/react/cookie-localstorage-sessionstorage-usage/

---
- Contributor: 王鈞宇