A: Cookie 和 Session 的区别:
-
安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。
-
存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。
-
有效期不同: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。
-
存储大小不同: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。
B: 针对第1点安全性(Session 比 Cookie 安全):
1.cookie 存储在客户端: cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。(cookie是所有的服务器记录的用户信息被发送到客户端,并被保存到cooike;而session存储的信息只有sessionId被发送到客户端,保存cookie 中)
2.session 是基于 cookie 实现的,session 是存储在服务器端,只是sessionId 会被存储到客户端的cookie 中
C:使用:
1.一般使用的默认登录会使用cookie
2.而需要安全机制的鉴权登录,都会使用session,并且使用鉴权超时时间。