系统解析:协议、Servlet、容器与 Spring 生态
访问网站完成操作,本质上都是基于 Web 的 B/S (Browser/Server) 架构。
[ B/S 架构示意图:终端 -> 互联网 -> 数据中心 ]
通过三次握手与服务器建立稳定的双向数据通路。
将请求路径、主机名及浏览器信息打包发送给服务器。
接收响应,解析 HTML 并呈现给用户最终的交互界面。
| Header 字段 | 核心功能与说明 |
|---|---|
| Host | 表示请求的主机名(用于区分同一服务器上的多个网站)。 |
| User-Agent | 客户端标识,如 Chrome/79 或 Mozilla/5.0。 |
| Accept | 浏览器能接收的资源类型(如 text/* 或 image/*)。 |
| Accept-Language | 浏览器偏好语言,用于返回不同语言版本的网页。 |
| Accept-Encoding | 支持的压缩格式(如 gzip, deflate, br)。 |
处理 TCP 连接、解析协议等底层琐事由 Web 服务器 (如 Tomcat) 负责。
开发者只需利用 Servlet API 编写业务逻辑。
// 编写自己的 Servlet
@WebServlet("/hello")
public class HelloServlet
extends HttpServlet {
@Override
protected void doGet(
HttpServletRequest req,
HttpServletResponse resp)
throws IOException {
// 逻辑:向浏览器返回文本
resp.getWriter().write("Hello Web!");
}
}
使混乱的代码逻辑变得清晰且模块化。
集成了前人解决通用问题的最佳实践。
# 运行一个 Spring Boot 应用
java -jar myapp.jar
从底层的 HTTP 连接,到中层的 Servlet API,
再到现代化的 Spring Boot 框架,您已经掌握了 Java Web 的全貌。