1.场景
Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。而Session和Cookie就是为解决这个问题而提出来的两个机制
2.cookie
Cookies是服务器在本地机器上(客户端硬盘,设置了过期时间;或浏览器内存中,临时的)存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。这个文本对用户来说,是透明的,你可以通过浏览器工具来查看当前的cookie,可能不止一个。
3.Session
是服务器端使用的一种记录客户端状态的机制
浏览器发起一个请求到服务器,服务器首先检查客户端的请求是否包含会话标识符session id。如果包含它,它先前已为此客户端创建了一个会话。服务器根据session id检索会话,如果客户端请求不包含session id,则为客户端创建会话并生成与会话关联的session id。 session id应该是一个既不重复也不容易被复制的字符串。会话ID将返回给客户端以保存此响应。
4.区别
-
cookie存放在客户端,不安全;session存放在服务器端,增加了服务器的存储压力。
-
cookie只能存放4k的数据,而session理论上没有做限制。
5.cookie 被禁用了怎么办?
URL地址重写将该用户Session的id信息重写 到URL地址中。服务器能够解析重写后的URL获取Session的id