session和cookie的区别(易混知识点)
概念
HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。
Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。
相同点
两者都是服务端创建。
不同点:
存储位置:Cookie由浏览器端存储,Session由服务端存储
安全性:正是因为Cookie存储在浏览器端,别人可以分析存放本地的Cookie,进行Cookie欺骗。Session存储在服务端相对安全
有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能。
Session失效时间较短(我觉得是说一般较快失效) ,客户端关闭或者 Session 超时都会失效。
两者常见的应用场景
Session :主要作用就是通过服务端记录用户的状态。
场景购物车:当你要添加商品到购物车的时候,Session 之后就可以标识这个用户并且记录这个用户。
Cookie:服务器端返回数据的时候通过 Set-Cookie 设置 Header,设置到浏览器中,如果在请求头中没有设置 Cookie 的过期时间,浏览器关闭后 Cookie 就会清空。
Cookie使用:用于响应头和请求头中:由服务器在响应头中设置,客户端保存,并在发送请求时请求头中带上cookie
场景:服务端生成token之后,浏览器端post请求拿到token之后,随http响应保存在客户端的cookies或local storage中,发起其他请求,设置token在请求头,再去服务端做检验以及后续操作。
如有错误,欢迎评论区指出,感谢阅读。