(正文前,先跟大家简单的聊一聊个人得理解,会帮助你更好的去实际的运用cookie和session)
在我的学习中我习惯的会把cookie和session,简单的理解为一个仓库
而其中cookie好比如去超市用的购物卡,那么上面会记录你的消费信息,使用情况,个人信息当你进行购物的积分积累计算的时候,可以直接进行对于你的积分进行累加,cookie的作用大概如此,即当用户想要访问浏览器的时候,服务器会给浏览器发送一些信息,而这些信息相应的保存在cookie中,这样当你再一次的访问浏览器的时候,服务端就会在请求头中将cookie发送到服务器中,这样方便了服务器做出相应的响应。
对应的session就好比我们去医院门诊挂号用的挂号卡一样,我们就是一个简单的“客户端",医生就相当于的“服务端”上面只有我们的自己的对应的一个ID号,自己的姓名,再无其他详细信息,而session 就好比是我们取就诊卡和医院为我们保留病况信息的一个简单的过程,当浏览器访问web服务器的时候,servlet就会创建一个Session对象和一个ID属性,session就好比是我们的病例,ID就是我们的挂号卡;当我们再一次的访问的时候就只需要把标识的号码,传递给服务端就可以判断出请求是谁哪一个病人发送的,这样就可以选择对应的session对象为ta进行服务。
不过需要注意的是:由于客户端需要接收,记录和回送Session对象的ID ,所以一般来讲session都是需要借助cookie来进行传递ID的(如下面我的脱坑)
1.二者 保存状态不同:
Cookie保存在浏览器端,服务端可以知道其中的信息。
Session保存在服务器端,客户端不知道其中的信息。
2. 二者的存储内容不同:
Cookie只能保存字符串类型 ;Session中保存的可以是任何类型的对象,而且Session中可含有多个对象)。
3.二者的存储的大小不同:
Cookie:单个Cookie保存的数据不能超过4kb. Session没有限制。
4. sessionID存储在Cookie中,一般而言,session的id都是存储在cookie中的
5.二者的应用场景不同:
Cookie:
判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除Cookie,则每次登录必须重新填写登录的相关信息。
Session:Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户。
将某些数据放入session中,供同一用户的不同页面使用(web端常用)。
*******************************************************************************
总的来说:(1)cookie是存放在客户端,而session则是存放在服务端的
(2)cookie线程为不安全的(类似于住酒店用户已经退房了可是退出之后还可以进入酒店系统一样),而相比较下session则更加的安全
(3)cookie可以长时间的进行保持,而对比之下session则只要是用户关闭了浏览器或者是时间的timeout时间到 了都会相应的退出
(希望会对看到博客的人有所帮助)