Cookie和Session以及它们的区别(面试)
Cookie是什么 ?
当用户访问一个网站时,服务器向用户发送包含特定信息的Cookie,浏览器将该Cookie存储在本地浏览器。当用户再次访问同一个网站时,浏览器会将存储在本地计算机上的Cookie一起发送给服务器,服务器通过读取Cookie中的信息来识别用户并提供相应的服务。
为什么要用Cookie:
HTTP协议是无状态的协议,对于事务处理没有记忆能力。意味着如果后续请求需要之前的信息,则必须重传,导致传送的数据量增大
Session是什么?
Session又称“会话控制”
当用户访问一个网站时,服务器为该用户创建一个对应的Session对象,该对象存储在服务器内存中。接下来,当用户再次访问时,服务器通过读取Session对象中的数据来识别用户并提供相应的服务
什么是会话 ?
用户开一个浏览器,点击超链接,访问web资源,然后关闭浏览器,整个过程称之为一个会话。
Cookie和Session的区别
- Cookie存储在浏览器或者本地,Session存储在服务器
- Session比Cookie更具有安全性(通过拦截或本地文件找到Cookie后可以进行攻击)
- 单个Cookie保存的数据不能超过4K,存储的数据较小,Session是没有大小限制和服务器的内存大小有关。
- Session占用服务器性能,Session过多,增加服务器压力
- Session 能够存储任意的 java 对象,Cookie 只能存储 String 类型的对象。Session更为灵活