session 与 cookie的区别

http

  http协议是无状态的(前后两次的请求互相独立),本身不支持服务端保存客户端的状态,但是基于业务需求,经常需要保存客户端的状态,也就引入了会话跟踪的概念。

  会话跟踪技术的实现一般由两种:cookie和session。

cookie

  cookie是客户端会话跟踪技术(客户端状态保存在cookie中,也就是浏览器的缓存,浏览器所在pc的文件中)

  cookie中保存的就是client端的状态信息,实际是由server端写的,发给client端,client之后每次访问server都会携带这个cookie信息,便于更新。这里也就是相当于带状态的http

  cookie的生命周期可以设置,

  cookie的作用域是同一个域名下(不区分端口,按ip和path去分)

http session

  session是服务端会话跟踪技术(客户端状态保存在server侧)

  session实现方式有多种,其中一种也是依赖cookie,在cookie中设置一个JSESSION字段,携带一个uuid,然后服务端以这个key来保存信息(客户端状态)

  如果禁用cookie,则session的实现方式是在url后面拼接session id信息

  session的有效期,客户端保存的是一个cookie信息,但是这个cookie中只是携带一个key,而不是全部信息,其有效期同cookie的有效期

  服务端根据内存设置一定的有效期,需要设置一定的策略,如LRU,来驱逐无用的session id。

原文地址:https://www.cnblogs.com/gc65/p/10982330.html