session 是什么?

session 和 Session 是不一样的,session 是存储在服务器端的一段数据,Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束

cookies 是什么?

HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能
Cookie 主要用于以下三个方面:

  • 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为等)

    Session的基本过程:

  1. 客户端用用户名和密码等进行认证,请求数据,服务端生成session对象返回sessionID,其代表了session的序列号
  2. 客户端接收数据,将sessionID存储在浏览器的Cookie之中,下次携带sessionID发送请求,服务端根据sessionID判断属于哪个用户,执行操作

    session和cookie的异同

  • 存储位置不一样,session存储在服务端,cookie存储在客户端
  • 大小不一样,session一般没有大小限制,cookie一般在4k以内
  • 有效期不同,cookie长期有效,可以设置有效时间,session关闭浏览器失效,超过一定的操作时间失效