cookie、sessionStorage、localStorage区别

88 阅读1分钟
对比
属性CookieLocalStorageSessionStorageIndexedDB
持久性根据过期时间。如果没有指定过期时间,则被移除之前一直有效移除之前一直有效当前页面关闭之前一直有效移除之前一直有效
是否可以阻止js访问
是否在每个请求中自动发送是(根据请求的域名和路径)
可强制使用HTTPS
大小限制4KB5MB5MB桌面应用50MB,移动设备5MB。可以在用户许可下存储更多
数据类型键值对。键值都是字符串键值对。键值都是字符串键值对,键值都是字符串键值对。支持许多数据类型,并支持复杂的查询
作用域独立域名或子域名独立域名或子域名独立域名,每个浏览器tab页独立域名,子域名不可以

cookie

浏览器与服务端网络通信时,正常情况下,http报文都会携带cookie供服务端获取,同样,服务端也可在返回信息时,通过set-cookie对客户端进行cookie设置,并且可以通过httpOnly禁止被js读取,防止攻击 浏览器会自动携带cookie

//在node中获取cookie
npm install cookie-parser --save

const express = require('express')
const app = express();
const cookieParser = require('cookie-parser');
app.use(cookieParser());

app.get('/views', (req, res) => {
  console.log(req.cookies);
  res.send("测试")
})

//前端
// 解决后端跨域获取不到cookie问题(允许请求的时候带上cookie)
axios.defaults.withCredentials = true