一、核心组件与职责
浏览器(Chrome 图标)
- 角色:HTTP 客户端,负责发起请求(如访问网页、提交表单 ),并渲染响应内容(把服务器返回的 HTML/CSS/JS 变成可视化网页 )。
- 技术点:基于 HTTP 协议通信,支持请求静态 / 动态资源,解析响应数据后展示。
Web 服务器(中间黑色服务器 + Tomcat 图标)
- 角色:HTTP 服务端核心,负责解析请求(识别请求类型、资源路径 )、调度资源(判断返回静态资源还是动态资源 )、返回响应(把处理结果封装成 HTTP 响应发回浏览器 )。
- 技术点:常见实现如 Apache Tomcat(支持 Java Web 技术栈,处理 Servlet/JSP ),需监听端口(如 8080 )接收请求。
静态资源(HTML/CSS/JS/ 图片等)
- 定义:内容固定不变的文件,直接存储在服务器文件系统中。
- 处理逻辑:Web 服务器收到请求后,直接读取文件内容,通过 HTTP 响应返回给浏览器(无需额外逻辑处理 )。
动态资源(Servlet、JSP)
- 定义:内容需动态生成的程序 / 页面,依赖服务器端逻辑处理(如查数据库、拼接页面 )。
- 技术点:
- Servlet:Java 编写的服务端程序,处理复杂业务逻辑(如用户登录校验、数据库操作 ),动态生成响应内容(如拼接 HTML )。
- JSP(JavaServer Pages):嵌入 Java 代码的页面模板,可动态渲染数据(如从数据库查用户信息,填充到 HTML 中 ),运行时会被编译为 Servlet 执行。
数据库(DB 图标)
- 角色:持久化存储数据(如用户信息、订单记录 ),为动态资源提供数据支撑。
- 技术点:动态资源(Servlet/JSP )通过 JDBC 等技术连接数据库,执行增删改查(CRUD )操作,获取或存储数据。
二、请求处理全流程
浏览器发起 HTTP 请求:
- 浏览器构造 HTTP 请求(包含请求行、请求头、请求体 ),通过网络发送到 Web 服务器监听的端口(如 http://localhost:8080/index.jsp )。
Web 服务器解析请求:
- 服务器接收请求后,解析 HTTP 协议内容(识别请求方法、资源路径、协议版本等 ),判断请求的是静态资源(如 .html .css )还是动态资源(如 .jsp 或 Servlet 映射路径 )。
静态资源直接返回:
- 若请求静态资源,Web 服务器直接读取对应文件(如 index.html ),封装成 HTTP 响应(设置 Content-Type 等头信息 ),返回给浏览器。
动态资源调度处理:
- 若请求动态资源(如 login.jsp 或 Servlet 路径 ):
- JSP:服务器会先编译 JSP 为 Servlet 类,执行过程中可嵌入 Java 代码(如查数据库 select * from users where id=1 ),动态生成 HTML 内容。
- Servlet:直接调用对应的 Servlet 类(需在服务器配置映射,如 /login 对应 LoginServlet ),执行 doGet()/doPost() 方法,处理业务逻辑(如校验登录参数、操作数据库 ),拼接响应数据(如生成 JSON 或 HTML )。
数据库交互(动态资源场景):
- 动态资源执行时,若需数据支撑(如登录校验、查询用户信息 ),通过 JDBC 连接数据库,执行 SQL 语句(如 SELECT * FROM users WHERE username='xxx' ),获取结果后用于动态内容生成。
返回 HTTP 响应:
- 动态资源处理完逻辑后,Web 服务器将生成的响应内容(如动态 HTML、JSON 数据 )封装成 HTTP 响应,通过网络发回浏览器。
浏览器渲染响应:
- 浏览器接收响应后,解析 HTTP 内容(识别状态码、响应头、响应体 ),若为 HTML/CSS/JS,执行渲染流程(构建 DOM 树、加载样式、执行脚本 ),最终在页面展示结果。
三、关键技术关联
- HTTP 协议:贯穿全程的通信规则,定义请求 / 响应的格式、方法(GET/POST 等 )、状态码(200/404 等 ),是浏览器与服务器交互的 “语言”。
- 静态 vs 动态资源:
- 静态资源:纯文件,无需逻辑处理,适合高频访问、内容固定的场景(如官网首页 )。
- 动态资源:需程序执行,支持个性化、实时数据交互(如用户中心、订单页面 )。
- Servlet/JSP:Java Web 技术栈的核心,Servlet 专注逻辑,JSP 专注页面动态渲染,共同支撑动态 Web 应用开发。
- 数据库:为动态应用提供数据持久化能力,使服务器能存储、查询用户数据,实现功能闭环(如注册登录、订单管理 )。
四、一句话总结
Web 服务器处理浏览器请求的完整流程:浏览器通过 HTTP 发请求,服务器解析后,静态资源直接返回,动态资源(Servlet/JSP )结合数据库处理逻辑、生成内容,最终通过 HTTP 响应返回,由浏览器渲染展示。
核心是 “静态资源直接响应,动态资源需逻辑 + 数据支撑”,体现了 Web 应用的分层处理模式。
评论前必须登录!
注册