从“会写路由”到“懂协议”,这是必经的坎

很多 Node.js 初学者有一个通病:会用 Express 或 Koa 写接口,但一旦底层网络出问题,或者需要封装一个通用的 API 客户端,就彻底傻眼。因为这背后缺乏对 HTTP 协议本身的底层认知。

这门课专门解决这个“能力断层”问题。它不教框架,而是带你用手撸 `http` 模块。你会发现,原来那些看似简单的请求和响应,背后是复杂的状态机、事件流和缓冲处理。如果你之前只停留在 `app.get('/api', ...)` 的层面,那么这门课就是帮你把地基重新夯实的必修环节。

攻克三大核心难点:解析、缓冲与 HTTPS

课程内容紧凑,分为服务端、客户端和进阶三个层次。

**第一部分聚焦服务端细节。** 很多初学者误以为接收数据直接 `req.body` 就完事了,但在原生模块中,你必须手动处理 `data` 和 `end` 事件来拼接缓冲区。课程会详细讲解如何解析 URL 查询字符串、如何处理 `headersSent` 属性防止重复发送响应头,以及 `write` 和 `end` 方法的正确使用时机。这些细节决定了你的代码在生产环境中的稳定性。

**第二部分转向客户端视角。** 使用 Node.js 发起 HTTP 请求并不像浏览器里 `fetch` 那么简单。你需要理解流式响应的处理、如何设置超时、以及如何中断一个已经发出的请求。这对于构建稳定的微服务调用链路至关重要。

**第三部分涉及 HTTPS 和安全交互。** 通过案例实现一个能与客户端自定义交互的服务器,并延伸至 HTTPS 服务器的创建。这填补了从明文通信到加密通信的知识空白,让你明白证书握手在 Node.js 中是如何运作的。

学完能做什么?资料如何配合

学完这套课程后,你将具备以下独立能力:
- 能够脱离框架,手写一个具备基础路由功能的 HTTP 服务器;
- 能够调试因请求体过大或编码问题导致的解析错误;
- 能够封装一个具备超时控制和错误重试机制的 HTTP 客户端工具类;
- 理解 HTTPS 证书在本地开发中的基本配置。

建议的学习顺序是:先看完前六节建立服务端的完整概念,特别是 `data`/`end` 事件的处理逻辑;然后重点练习第九至十一节的客户端案例,这是最容易出错的地方;最后再看 HTTPS 部分作为拓展。资料包中的源码是唯一的练习基准,请务必亲手敲一遍每一段示例代码,不要只看不练,否则“解析请求体”和“处理流”这两个考点依然会把你难倒。

课程目录

1 创建Http服务器 (26:43)
2 获取客户端请求信息 (09:42)
3 客户端请求的data和end事件 (08:52)
4 解析URL字符串和查询字符串 (12:41)
5 向客户端发送数据 (08:19)
6 headersSent属性 (13:32)
7 write和end方法详解 (13:27)
8 response.setTimeout方法和和timeout事件 (12:03)
9 请求Web数据 (12:27)
10 请求Web数据的事件与中断请求 (14:32)
11 案例:自定义与客户端交互的服务器 (11:00)
12 创建HTTPS服务器 (20:37)