跳到主要内容

Cookie 和 Session 的区别

· 阅读需 2 分钟
素明诚
Full stack development

Session 指的是服务器为了跟踪和区分用户的状态而在服务器端存储的数据。当用户与 Web 应用交互时,服务器会创建一个会话(Session),用来保存关于这个用户的信息,这可以包括用户的登录状态、购物车内容或任何其他必要的数据,以保持用户在多个页面请求之间的持续性。

工作原理

会话创建:用户首次访问网站时,服务器会生成一个独一无二的会话标识符(Session ID),并以此来创建一个会话。这个会话标识符通常会通过 Cookie 发送到用户的浏览器,保存在用户端。

会话存储:服务器使用会话 ID 识别来自同一浏览器的后续请求,并可以根据需要检索和修改会话数据。

会话结束:会话可以通过服务器设置的超时,用户的主动登出或者通过其他机制结束。

Cookie:通常用来存储 Session ID,是服务器发送到用户浏览器并保存在本地的小数据片段。浏览器每次向服务器发送请求时都会自动附带这些 Cookie,使服务器能够识别用户和会话状态。

Session 数据:实际的数据保存在服务器端,通过从浏览器发送的 Cookie 中提取的 Session ID 进行访问和管理。

安全性

由于 Session 数据存储在服务器端,它比存储在用户浏览器中的 Cookie 更安全。没有直接的方式可以从用户端查看或修改存储在服务器上的 Session 数据。所以 Cookie 一般用来保存用户信息,Session 的主要作用就是通过服务端记录用户的状态