使用Session与Cookie的原因,以及它们之间的区别与联系
认识Session与Cookie
个人博客文章地址
一、为什么要使用Session与Cookie?
首先,我们知道http协议是无状态的协议,也就是说,我们客户端(浏览器)要去访问服务器时,服务器是无法识别出是否为同一个用户的。即服务器无法知晓多次请求是否为同一个用户发出。因此,需要通过Session或者Cookie来为我们解决这种问题。
二、Cookie与Session的区别
1. 存储位置
Cookie存放在客户端,Session存放在服务端
2. 使用方式
Cookie
首次访问服务器,服务器会将需要使用到的信息写在Cookie对象中,然后再响应回客户端,让客户端存储Cookie信息。之后的客户端请求,只需要携带Cookie中的信息,服务端即可直接获取。
我们也可以在浏览器的开发模式中看到我们的Cookie信息
Session
用户首次想服务端发送请求时,会为客户端分配一个唯一的Session ID,并且为该用户开辟一个独立的空间,该空间即可为用户保存所需数据,保持会话状态等,只需要将唯一的ID保存在客户端,而后的每次请求携带该ID访问即可被服务端识别,然后凭此在服务端内存中获取需要信息。
我们也可以在浏览器的开发模式中看到我们的Session信息
3. 安全性
由使用原理可知,Cookie是直接将用户信息保存在客户端(浏览器),有被窃取以及被攻击的风险。Session信息直接保存在服务端,相对来说更为安全。
4. 保存时间
Cookie是保存在客户端的,所有可以长时间保存。
Session则保存在服务端的,长时间的保存则会占用服务器的资源,因此保存时间一般是比较短的。
5. 保存数量限制
Cookie
有限制数量,各种浏览器的限制数量不同。
Session
根据服务器的内存(以及硬盘)情况,没有明确的数量限制。
三、两者之间的联系
由Session的使用原理,我们可以知道,客户端需要保存有唯一的Session ID以便在访问时携带上,供浏览器获取,然后得到用户状态信息。而这个将Session ID保存到客户端的方法,正是使用的Cookie方法。所以Session也是是依赖于Cookie的。这就是二者之间的联系。如果对文章有异议,希望指出~