从 HTTP 协议到服务器部署:补齐后端开发的底层逻辑

很多 Java 学习者在掌握基础语法和面向对象编程后,往往会遇到一个明显的断层:能写控制台程序,也能操作集合框架,但一旦面对“浏览器请求是如何被服务器接收并处理”这个问题,就无从下手。这门课程的核心价值,正是填补这块从纯 Java 后端到 Web 服务端的能力缺口。它不直接跳跃到高阶框架,而是先回头夯实最底层的 HTTP 通信机制与 Tomcat 服务器原理。对于备考转岗或希望查漏补缺的学习者来说,这是从“写代码”转向“构建服务”的必经之路。如果你发现自己虽然会用 Spring MVC,却说不清 GET 和 POST 在请求报文层面的具体差异,或者不理解浏览器输入域名到页面展示之间到底发生了什么,这门课就是为你准备的精准补位。

聚焦网络协议与服务器原理:建议先看的前置模块

课程的前半部分侧重于网络通信原理,这是初学者最容易轻视但实际工作中最常踩坑的区域。建议优先精读 HTTP 请求与服务器相关的章节,重点攻克 CS 与 BS 架构的区别、域名解析的完整流程,以及 HTTP 请求与响应的结构细节。特别是 GET 与 POST 请求方式在参数传递、安全性及幂等性上的本质区别,需要通过具体的发送方式练习来巩固,而非死记硬背。只有理解了浏览器如何封装请求数据、服务器如何解析响应内容,后续学习 Servlet 时才不会觉得抽象。此外,Tomcat 服务器的安装、目录结构以及 JavaEE 规范的引入,是连接理论代码与实际部署的关键环节。这部分内容不需要过度纠结于复杂的环境配置陷阱,但要清晰掌握一个 Web 应用是如何被容器加载和运行的,这是后续进行任何 Web 开发的基础语境。

学完能独立做什么:资料配合练习的路径建议

完成本课程后,你应当能够独立解释一次 HTTP 请求的完整生命周期,包括从 DNS 解析到最终 TCP 连接建立的全过程;能够熟练掌握模拟发送 HTTP 请求的参数格式与内容结构;并具备在本地环境搭建、配置及启动 Tomcat 服务器的能力,理解 Web 资源在服务器端的存储与访问映射关系。为了达到这一目标,单纯观看视频是不够的。在配套练习环节,建议你动手配置不同的请求头信息,观察响应状态码的变化,并通过实际操作 Tomcat 目录,明确 classes、webapps 等核心文件夹的作用。不要急于进入复杂的业务逻辑开发,先把网络层和服务层的基础打牢。当你能够清晰地画出请求流转图,并解释清楚服务器为何返回特定响应时,这段学习就真正闭环了。

课程目录

1-1 [HTTP请求与服务器] CS与BS架构 (05:25)
1-2 [HTTP请求与服务器] Web资源介绍 (07:14)
1-3 [HTTP请求与服务器] 域名资源访问流程 (12:17)
1-4 [HTTP请求与服务器] 发送http请求方式 (10:08)
1-5 [HTTP请求与服务器] 如何发送http请求参数 (10:16)
1-6 [HTTP请求与服务器] http请求与响应的结构 (06:02)
1-7 [HTTP请求与服务器] http请求与响应内容 (09:44)
1-8 [HTTP请求与服务器] GET与POST请求方式 (09:13)
1-9 [HTTP请求与服务器] 访问流程完整介绍 (03:23)
2-1 [Tomcat服务器] JavaEE规范与常见Web服务器 (09:57)
2-2 [Tomcat服务器] Tomcat下载安装与目录介绍 (12:49)
2-3 [Tomcat服务器] Tomcat启动与访问 (13:55)
2-4 [Tomcat服务器] 手动创建Web应用 (12:46)
2-5 [Tomcat服务器] Eclipse创建Web应用 (09:13)
2-6 [Tomcat服务器] Eclipse部署项目 (13:28)
2-7 [Tomcat服务器] Tomcat启动速度优化 (11:57)
2-8 [Tomcat服务器] Tomcat服务器Context介绍 (10:55)
2-9 [Tomcat服务器] Tomcat配置文件Context属性 (07:50)
2-10 [Tomcat服务器] Tomcat服务器体系结构 (10:04)
2-11 [Tomcat服务器] 虚拟主机 (14:54)
2-12 [Tomcat服务器] Tomcat插件安装 (06:29)
3-1 [Servlet与Servlet配置] 什么是Servlet (11:16)
3-2 [Servlet与Servlet配置] 第一个Servlet程序 (15:45)
3-3 [Servlet与Servlet配置] Servlet向浏览器响应信息 (06:37)
3-4 [Servlet与Servlet配置] 什么是反射 (08:58)
3-5 [Servlet与Servlet配置] 获取字节码 (06:44)
3-6 [Servlet与Servlet配置] 通过字节码创建对象 (05:15)
3-7 [Servlet与Servlet配置] 通过反射获取字段 (07:10)
3-8 [Servlet与Servlet配置] 反射获取方法 (04:32)
3-9 [Servlet与Servlet配置] 通过反射绕过集合泛型检测 (04:59)
3-10 [Servlet与Servlet配置] Tomcat反射加载Servlet (16:50)
3-11 [Servlet与Servlet配置] Servlet创建过程复习 (09:20)
3-12 [Servlet与Servlet配置] init与destory方法调用时机 (13:52)
3-13 [Servlet与Servlet配置] Servlet访问流程 (07:15)
3-14 [Servlet与Servlet配置] init方法参数介绍 (07:40)
3-15 [Servlet与Servlet配置] url-patten匹配形式 (06:23)
3-16 [Servlet与Servlet配置] url-patten缺省值与静态资源的访问流程 (13:11)
4-1 [注解创建Servlet与ServletContext] 使用注解创建Servlet (13:51)
4-2 [注解创建Servlet与ServletContext] doGet与doPost方法 (09:04)
4-3 [注解创建Servlet与ServletContext] doGet与doPost内部调用流程 (08:28)
4-4 [注解创建Servlet与ServletContext] 登录功能建表与界面搭建 (11:12)
4-5 [注解创建Servlet与ServletContext] 登录功能-获取请求参数 (09:53)
4-6 [注解创建Servlet与ServletContext] 登录功能-数据库配置 (13:33)
4-7 [注解创建Servlet与ServletContext] 登录功能-验证登录成功 (08:47)
4-8 [注解创建Servlet与ServletContext] ServletContext介绍 (15:16)
4-9 [注解创建Servlet与ServletContext] ServletContext介绍 (15:16)
4-10 [注解创建Servlet与ServletContext] ServletContext获取很地址与字节码目录 (12:48)
5-1 [Response响应] ServletContext域对象 (07:35)
5-2 [Response响应] Response响应流程 (07:49)
5-3 [Response响应] Response设置状态码 (06:43)
5-4 [Response响应] Response添加修改响应头 (06:20)
5-5 [Response响应] Response重定向 (12:21)
5-6 [Response响应] Response设置响应体字符信息 (04:48)
5-7 [Response响应] Response响应解决中文乱码问题 (11:19)
5-8 [Response响应] FileInputStream读取一个字符 (08:53)
5-9 [Response响应] FileInputStream读取多个字符 (07:19)
5-10 [Response响应] FileInputStream读取整个文件 (09:14)
5-11 [Response响应] Response响应图片 (10:11)
5-12 [Response响应] 文件下载-使用a标签下载文件 (05:03)
5-13 [Response响应] 文件下载-发送Servlet请求下载文件 (12:58)
5-14 [Response响应] 文件下载-Response设置文件类型与附件下载 (07:27)
5-15 [Response响应] 文件下载-请求参数中文乱码解决 (09:35)
5-16 [Response响应] 文件下载-解决下载中文文件名称问题 (07:02)
5-17 [Response响应] 注册验证码-生成图片 (10:08)
5-18 [Response响应] 注册验证码-静态页面编写 (05:10)
5-19 [Response响应] 注册验证码-点击换一张 (08:36)
6-1 [Request请求] 注册验证码-校验正确性 (11:56)
6-2 [Request请求] Request简介 (02:30)
6-3 [Request请求] Request获取请求方式 (09:55)
6-4 [Request请求] Request获取请求行 (07:11)
6-5 [Request请求] Request获取请求头 (06:36)
6-6 [Request请求] Request请求头Referer注意点 (05:35)
6-7 [Request请求] Request请求form表单参数发送 (08:55)
6-8 [Request请求] Request请求获取多个请求参数 (12:19)
6-9 [Request请求] Request请求post方式设置编码 (08:34)
6-10 [Request请求] Request请求参数BeanUtils使用 (13:19)
6-11 [Request请求] Request请求转发 (08:07)
6-12 [Request请求] Request域对象 (10:10)
6-13 [Request请求] 客户端地址服务器端地址 (02:07)
7-1 [码蚁商城-登录注册功能] 码蚁商城-登录注册功能分析 (13:37)
7-2 [码蚁商城-登录注册功能] Lombok安装使用 (09:42)
7-3 [码蚁商城-登录注册功能] JDK版本升级时常见问题 (06:07)
7-4 [码蚁商城-登录注册功能] 引用Jar包 (05:27)
7-5 [码蚁商城-登录注册功能] Lombok其它注解介绍 (04:15)
7-6 [码蚁商城-登录注册功能] 码蚁商城-注册验证码添加 (07:39)
7-7 [码蚁商城-登录注册功能] 码蚁商城-注册前端js插件安装 (09:09)
7-8 [码蚁商城-登录注册功能] 码蚁商城-注册前端验证 (08:01)
7-9 [码蚁商城-登录注册功能] 码蚁商城-注册JS提交表单 (15:59)
7-10 [码蚁商城-登录注册功能] 码蚁商城-注册录入数据库 (16:07)
7-11 [码蚁商城-登录注册功能] 码蚁商城-登录功能完成 (12:59)
8-1 [Cookie与Session会话] 会话技术 (03:56)
8-2 [Cookie与Session会话] 加入购物车需求分析 (09:16)
8-3 [Cookie与Session会话] session与cookie介绍 (09:30)
8-4 [Cookie与Session会话] 创建Cookie (10:47)
8-5 [Cookie与Session会话] 设置Cookie持久化时间 (07:52)
8-6 [Cookie与Session会话] 设置cookie的携带路径 (10:43)
8-7 [Cookie与Session会话] 删除cookie信息 (04:36)
8-8 [Cookie与Session会话] 获取指定cookie信息 (05:55)
8-9 [Cookie与Session会话] 获取上次访问时间 (10:52)
8-10 [Cookie与Session会话] Session原理 (06:47)
8-11 [Cookie与Session会话] Session域对象 (09:39)
8-12 [Cookie与Session会话] Session域的生命周期 (06:31)
8-13 [Cookie与Session会话] Session域持久化JSessionID (14:32)
9-1 [JSP] 什么是JSP (11:58)
9-2 [JSP] JSP工作原理 (10:39)
9-3 [JSP] JSP中编写Java代码 (05:19)
9-4 [JSP] JSP注释 (04:59)
9-5 [JSP] JSP指令include (09:33)
9-6 [JSP] JSP指令include (09:33)
9-7 [JSP] JSP指令page (11:19)
9-8 [JSP] JSP静态包含与动态包含 (07:45)
9-9 [JSP] JSP内置对象介绍 (09:01)
9-10 [JSP] JSP内置对象out (08:00)
9-11 [JSP] JSP内置对象pageContext (12:36)
9-12 [JSP] 码蚁商城列表-需求与准备工作 (11:16)
9-13 [JSP] 码蚁商城列表-头部尾部分离 (10:07)
9-14 [JSP] 码蚁商城列表-建表准备数据 (05:34)
9-15 [JSP] 码蚁商城-获取数据 (08:34)
9-16 [JSP] 码蚁商城列表-数据页面展示 (13:26)
10-1 [EL与JSTL] EL表达式基本使用 (09:23)
10-2 [EL与JSTL] EL表达式简写及内置对象 (11:53)
10-3 [EL与JSTL] JSTL标签IF (11:11)
10-4 [EL与JSTL] JSTL标签用户名显示控制 (10:15)
10-5 [EL与JSTL] JSTL标签普通foreach (04:31)
10-6 [EL与JSTL] JSTL标签增加foreach循环 (12:30)
10-7 [EL与JSTL] 商品列表EL表达式结合JSTL写法 (08:23)
11-1 [MVC与三层架构实战(商城后台管理系统)] MVC设置模式 (10:50)
11-2 [MVC与三层架构实战(商城后台管理系统)] MVC与三层架构 (10:30)
11-3 [MVC与三层架构实战(商城后台管理系统)] 商品列表改写 (07:24)
11-4 [MVC与三层架构实战(商城后台管理系统)] 商城后台管理系统简介 (05:07)
11-5 [MVC与三层架构实战(商城后台管理系统)] 商城后台管理系统-结构介绍 (06:32)
11-6 [MVC与三层架构实战(商城后台管理系统)] 建立管理员表 (05:12)
11-7 [MVC与三层架构实战(商城后台管理系统)] 登录业务代码编写 (15:50)
11-8 [MVC与三层架构实战(商城后台管理系统)] 管理员登录三层架构业务流程分析 (09:49)
11-9 [MVC与三层架构实战(商城后台管理系统)] 登录失败错误回显与路径问题 (13:29)
11-10 [MVC与三层架构实战(商城后台管理系统)] 登录成功重定向后台首页 (11:30)
11-11 [MVC与三层架构实战(商城后台管理系统)] 商品管理业务分析 (07:44)
11-12 [MVC与三层架构实战(商城后台管理系统)] 商品DAO添加与获取所商品 (16:19)
11-13 [MVC与三层架构实战(商城后台管理系统)] 商品DAO删除与更新商品 (08:53)
11-14 [MVC与三层架构实战(商城后台管理系统)] 商品列表业务编写 (14:14)
11-15 [MVC与三层架构实战(商城后台管理系统)] 商品列表页面展示 (07:45)
11-16 [MVC与三层架构实战(商城后台管理系统)] 商品删除 (12:42)
11-17 [MVC与三层架构实战(商城后台管理系统)] 添加商品界面分类展示 (15:47)
11-18 [MVC与三层架构实战(商城后台管理系统)] 添加商品业务分析 (11:00)
11-19 [MVC与三层架构实战(商城后台管理系统)] 添加商品接收参数 (15:07)
11-20 [MVC与三层架构实战(商城后台管理系统)] 添加商品完成 (19:11)
11-21 [MVC与三层架构实战(商城后台管理系统)] 写入数据库乱码与集合反转 (04:45)
11-22 [MVC与三层架构实战(商城后台管理系统)] 商品编辑业务流程 (07:59)
11-23 [MVC与三层架构实战(商城后台管理系统)] 商品编辑数据回显 (17:34)
11-24 [MVC与三层架构实战(商城后台管理系统)] 商品更新处理 (13:15)
11-25 [MVC与三层架构实战(商城后台管理系统)] 商品更新显示 (06:53)
11-26 [MVC与三层架构实战(商城后台管理系统)] 编辑分类下拉列表选中 (11:51)
11-27 [MVC与三层架构实战(商城后台管理系统)] 商品管理代码存在的问题 (05:03)
11-28 [MVC与三层架构实战(商城后台管理系统)] 通用Servlet (11:44)
11-29 [MVC与三层架构实战(商城后台管理系统)] 通用Servlet改进 (05:01)
11-30 [MVC与三层架构实战(商城后台管理系统)] 通用Servlet使用反射替代if判断 (14:09)
11-31 [MVC与三层架构实战(商城后台管理系统)] 抽取BaseServlet (05:32)
11-32 [MVC与三层架构实战(商城后台管理系统)] 商品模块使用通用BaseServlet (14:05)
12-1 [idea使用] Idea介绍 (03:42)
12-2 [idea使用] idea安装 (06:18)
12-3 [idea使用] idea创建普通Java工程 (04:49)
12-4 [idea使用] idea设置样式 (07:44)
12-5 [idea使用] idea主题安装 (05:37)
12-6 [idea使用] 工程选择与隐藏.idea文件夹 (10:28)
12-7 [idea使用] idea快捷键设置 (12:22)
12-8 [idea使用] lombok插件安装 (05:51)
12-9 [idea使用] tomcat服务器配置 (08:44)
12-10 [idea使用] tocat关联jar包运行项目 (08:35)
12-11 [idea使用] Jrebel热部署 (09:56)
12-12 [idea使用] idea导入Eclipse项目 (10:17)
12-13 [idea使用] 设置导入工程编码 (02:47)
13-1 [分页] 分页-导入工程 (09:44)
13-2 [分页] 分页-创建PageBean (08:31)
13-3 [分页] 分页-执行流程 (07:36)
13-4 [分页] 分页-获取总记录数 (11:22)
13-5 [分页] 分页-计算总页数 (08:41)
13-6 [分页] 分页角标算法 (09:01)
13-7 [分页] 分页-查询数据 (05:13)
13-8 [分页] 分页-数据展示 (07:03)
14-1 [监听器与过滤器] 代理设计模式 (09:00)
14-2 [监听器与过滤器] 代理设计模式代码实现 (12:26)
14-3 [监听器与过滤器] 监听器基本概念 (05:08)
14-4 [监听器与过滤器] ServletContextListener用法 (12:47)
14-5 [监听器与过滤器] HttpSessionListener (19:55)
14-6 [监听器与过滤器] ServletRequestListener (09:34)
14-7 [监听器与过滤器] 域对象属性监听器 (09:32)
14-8 [监听器与过滤器] 过滤器介绍 (06:09)
14-9 [监听器与过滤器] 过滤器的基本使用 (12:06)
14-10 [监听器与过滤器] 过滤器执行流程 (06:48)
14-11 [监听器与过滤器] 过滤器的生命周期 (10:55)
14-12 [监听器与过滤器] 过滤器配置 (04:28)