Cookie概念
Cookie 是存储在用户本地终端上的数据(客户端技术)。它通常用于跟踪用户的会话信息。当用户访问某个网站时,网站会向用户的浏览器发送一个或多个 Cookie,然后浏览器将这些信息存储在本地。每次用户重新访问该网站时,浏览器都会将这些 Cookie 信息发送给服务器,以便服务器识别用户并记住他们的偏好或登录状态。
示例:
浏览器中可以查看到cookie
Session概念
Session 是存储在服务器上的数据(服务端技术),用于跟踪用户的会话信息。当用户访问网站时,服务器会为该用户创建一个唯一的 Session ID(Session对象),并将此 ID 发送回用户的浏览器。用户的浏览器在后续请求中会携带这个 Session ID,服务器通过这个 ID 来识别用户并获取其会话信息。一个session独占一个浏览器,只要浏览器没有关闭,这个session就存在。
示例:
区别
- 存储位置: Cookie存储在客户端的浏览器上;Session存储在服务器端。
- 安全性: Session更安全,因为它不暴露给客户端。
- 大小限制: Cookie的大小有限制(通常不超过4KB),而Session没有严格的大小限制。
- 生命周期: Cookie可以设置有效期(用setMaxAge()方法);Session默认在用户关闭浏览器后失效,但可以通过设置最大非活动间隔来控制。
过程示例(帮助理解)
Cookie 示例:
- 用户首次访问网站时,服务器生成一个 Cookie 并发送给用户的浏览器。
- 浏览器存储这个 Cookie。
- 用户再次访问网站时,浏览器会自动将这个 Cookie 发送给服务器。
- 服务器读取 Cookie,识别用户,并显示相应的内容。
Session 示例:
- 用户首次访问网站时,服务器为该用户创建一个 Session,并生成一个唯一的 Session ID。
- 服务器将这个 Session ID 发送给用户的浏览器。
- 用户再次访问网站时,浏览器会自动将这个 Session ID 发送给服务器。
- 服务器根据 Session ID 识别用户,并从 Session 中获取用户的会话信息,显示相应的内容。
还有一个我看到的一个例子也放到这里: