session和cookie

session和cookie都是一种保存用户状态的会话技术。

 

为什么使用session和cookie?

  我们都知道计算机通过网络通信时,遵循HTTP协议(超文本传输协议),而HTTP是无状态的,每次信息传输完毕就会断开服务段与客户端之间的连接,下次需要重新建立连接认证。也就是说HTTP并不能保存刚才访问我的用户信息,每次请求都相当于是第一次访问,相当繁琐。于是就出现了session和cookie

 

cookie

  客户端会话技术,将用户信息以key:value的形式保存在客户端。

  当客户端第一次访问服务端时,服务段会给客户端发送一个特殊的字符串,用以标识客户端身份,客户端自己将此字符串保存。客户端下次带着cookie来访问服务段,服务端就不需要对客户端进行认证了。

  cookie不能夸域名,不能夸浏览器。即你不能带着京东的cookie访问淘宝,也不能带着百度的cookie访问谷歌。

  支持过期:你可以给cookie设置过期时间。

  类似于生活中小区出入证:你刚搬进新小区,社区会根据你的住址判断你是否是本小区人员,认定成功后会发给你一个出入证,下次进小区你带着出入证,就知道你是本小区住户,可以直接出入。

 

session:

  服务段会话技术,用户状态信息保存在服务端

  session依赖cookie:客户端第一次访问服务端,服务段会保存客户端信息并给客户端返回一个sessionId,客户端只需要记住这个sessionId就可以了(通过cookie保存),客户端下次带着此sessionId来访问服务端,服务端就可以根据sessionId来区分认证客户端。

  类似于生活中理发店:你发现了一家理发店,理发后发现这家店还不错,打算以后就在这家店理发,于是你问理发店办了一个会员卡,理发店会记录你的信息后给你一张卡片并告诉你以后可以通过你的手机号(sessionId)来使用你的会员卡。于是你下次来就可以通过你的手机号来使用你的会员优惠。  这里你的手机号就相当于是sessionId

 

区别:

  cookie保存在客户端,session保存在服务端

  相对来说cookie不安全,session更加安全

  cookie保存的数据量比较少,一般不超过4k

  session因为保存在服务端中,所以当session很多的时候,会消耗服务器性能

  

posted on 2020-08-13 11:52  懒得显示  阅读(123)  评论(0编辑  收藏  举报