cookie
因为http协议是无状态(没有记忆功能)的协议,当我们的系统使用了cookie或session技术后可以让我们的系统有记忆功能。
cookie:Cookie的产生也是HTTP的特点所决定的。HTTP协议有一个非常重要的特点是无状态的,也就是说当客户端请求服务器,每一个请求和响应结束以后,这次的连接是马上断开的(也是为了释放资源)。同时服务器是不保留连接者相关的信息。这就说明了,Cookie要解决HTTP无状态的问题。
cookie的实现原理
session
Session是另一种记录用户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。当服务端使用Session后,那么服务器会把Session信息存储在服务器上,同时Session标识也会记录在对应客户端上。
session的特点
-
Session存储在服务器
-
依赖cookie
-
可以存储任意类型
-
通过客户端的sessionid标识符区分Session
-
Session没有大小限制
实现原理
cookie与session的区别
-
cookie存储在客户端、相对不安全,session存储在服务端、相对安全;
-
cookie默认有效时间为整个有效会话期间,但设置有效时间,session不能设置有效时间,session默认有效时间为整个有效会话期间;有效会话期间指打开浏览器开始访问某个系统到关闭整个浏览器之前的这段时间。
-
cookie有大小限制(在4KB左右)及个数限制(每个域名可以存放的个数在20个至50个之间),session没有限制
-
浏览器可以禁用cookie,但session没有这方面的限制;
-
不同的浏览器之间不共享Cookie、session;
-
存储Cookie、session后在整个项目中有效(页面之间共享)
cookie与session的联系
session依赖cookie,因为session的id存放在客户端的cookie中;