1. Cookie
定义: Cookie 是一种由 Web 服务器在用户浏览器中存储的小数据文件。当你访问网站时,服务器可以通过响应向浏览器发送 Cookie。浏览器在后续的请求中会将这些 Cookie 发送回服务器,用来记录用户的状态或偏好等信息。
工作原理:
- 当你访问一个网站时,服务器通过 HTTP 响应头将一些小的数据存储在浏览器的 Cookie 中。
- 每次你再次访问同一个网站时,浏览器会自动把之前存储的 Cookie 发送给服务器。
- Cookie 是客户端存储的,可以在本地查看并修改。
特点:
- 存储大小限制:每个 Cookie 的大小一般不能超过 4 KB。
- 存储位置:存储在用户的浏览器中。
- 生命周期:Cookie 可以设置过期时间,如果没有设置,浏览器会在会话结束时自动删除它。
用途:
- 用户身份认证(如登录状态)
- 用户偏好设置(如语言、主题颜色)
- 跟踪用户行为(如广告推送)
例子:
// 在服务器中设置
Cookie Cookie cookie = new Cookie("username", "john");
cookie.setMaxAge(60 * 60 * 24);
// 设置 Cookie 过期时间为 1 天 response.addCookie(cookie);
// 将 Cookie 添加到响应中
2. Session
定义: Session 是服务器端的一种技术,用于在多个请求之间保存用户的数据。当用户访问 Web 应用时,服务器会为每个用户分配一个唯一的 Session ID
。这个 Session ID
会通过 Cookie 或 URL 传递给浏览器,浏览器会在后续的请求中自动发送 Session ID
,服务器就可以通过这个 ID 来识别用户。
工作原理:
- 用户首次访问网站时,服务器会为该用户创建一个
Session
对象,并生成一个唯一的Session ID
。 - 服务器将
Session ID
发送给浏览器,浏览器通过 Cookie 或 URL 把这个Session ID
发回给服务器。 - 服务器通过
Session ID
来识别每个用户,从而能够保持用户的状态(如登录信息)。
特点:
- 存储位置:存储在服务器端,数据保存在服务器内存中(或者磁盘上,如果是持久化的)。
- 存储容量:不受浏览器限制,能够存储大量的数据。
- 生命周期:Session 通常有超时机制,超过一段时间未访问,服务器会自动销毁该 Session。
用途:
- 用户身份管理(如登录用户信息)
- 在多个页面之间保持用户的状态(如购物车)
例子:
// 设置 Session 属性
HttpSession session = request.getSession();
session.setAttribute("username", "john");
// 获取 Session 属性
String username = (String) session.getAttribute("username");
3. Tomcat
定义: Tomcat 是一个开源的 Java Servlet 容器(Servlet 容器就是一个实现了 Servlet 规范的服务器),它能执行 Java 代码并处理 Web 请求。Tomcat 是一个 Web 服务器,它负责处理浏览器发来的 HTTP 请求,并将请求转发到 Java Servlet 或 JSP(Java Server Pages)来生成动态的 Web 页面。
工作原理:
- Tomcat 会启动一个 HTTP 服务器,监听客户端的请求。
- 当请求到达时,Tomcat 根据请求的 URL 和映射规则(通常在 web.xml 配置文件中)将请求转发给对应的 Servlet。
- Servlet 会处理请求(如数据库操作、用户认证等),并返回响应内容(HTML 页面、JSON 数据等)。
- Tomcat 还负责管理 Servlet 和 JSP 的生命周期,并提供了多种功能,如连接池、会话管理、请求转发等。
特点:
- Web 服务器和 Servlet 容器:Tomcat 既是一个 Web 服务器,又是一个 Java Servlet 容器,能够处理 JSP、Servlet 等 Java Web 技术。
- 开源且轻量级:Tomcat 是 Apache 软件基金会开发的开源项目,广泛用于 Java Web 开发。
- 支持 Servlet/JSP:它符合 Java EE(现在的 Jakarta EE)规范,是开发 Java Web 应用的常用容器。
用途:
- 提供 Web 应用托管服务
- 处理 HTTP 请求并调用 Java Servlet/JSP 页面
- 管理用户会话、URL 重写、请求转发等功能
安装和使用:
- 你可以从 Apache Tomcat 的官网下载安装包,安装完成后通过启动脚本启动 Tomcat 服务。
- 配置文件通常位于
conf
目录中,Web 应用部署在webapps
目录下。
总结:
- Cookie 是浏览器存储的小数据,用于保存用户的状态(如登录信息),它保存在客户端。
- Session 是服务器端存储的用户会话信息,通过
Session ID
来关联每个用户,它通常保存在服务器内存中。 - Tomcat 是一个 Web 服务器和 Servlet 容器,用于处理 HTTP 请求并执行 Java Web 应用(如 Servlet 和 JSP)。