面试题之——Cookie和Session的区别
一.存储位置
- Cookie存储在客户端(浏览器)当中
- Session存储在服务器当中
二.安全性
- Cookie由于存储在客户端当中,Cookie数据可以被用户或其他恶意程序直接访问和修改,因此存在被窃取或篡改的风险。
- Session存储在服务器当中,不易被外部直接访问,安全性更高,除非服务器被攻击破坏。
三.性能方面
- 由于Cookie是每次发http请求都会携带的内容,如果Cookie存储的数据较多,会占据带宽,增加网络传输的压力。
- 由于Session是存储在服务器当中,则会占用服务器的资源。
四.存储大小
- Cookie的容量有限,通常为4KB左右,一个站点最多能保存20个cookie;
- Session通常没有具体的容量限制,可以存储更多的数据。
五.生命周期
- 对于Cookie来说,如果没有设置过期时间,它被称为会话Cookie,其生命周期仅限于浏览器会话期间,一旦关闭浏览器窗口,Cookie就会消失。如果设置了过期时间,浏览器会将Cookie保存到硬盘上,即使关闭浏览器后再次打开,这些Cookie仍然有效,直到超过设定的过期时间。
- Session的生命周期通常在用户关闭浏览器或者一定时间内没有活动访问时结束;Session一般不设置存活时间tomcat中默认的是30分钟。
六.使用场景
- 由于Cookie的安全性较低,所以一般存储的都是一些简单的用户偏好设置或少量的会话信息(非敏感信息)。
- Session更适合存储用户的登录状态或其他敏感信息。
七.数据类型不同
- Cookie一般存储的都是一些字符串内容。
- Session则存储的是对象类型。