Skip to content

序言

网络编程:连接世界的能力

当你的 Node.js 应用不再是一个孤立的程序,而是需要与外部世界通信时——无论是接收用户请求、调用第三方 API、还是与其他服务交互——你就进入了网络编程的领域。

这本书将带你深入 Node.js 的网络编程能力,从最底层的 TCP/UDP 套接字,到高层的 HTTP/HTTPS 协议,再到现代的 HTTP/2 和 WebSocket,全面掌握 Node.js 的网络能力。

为什么要学习底层网络编程

你可能会问:有了 Express、Fastify 这样的框架,为什么还要学习底层的 net 和 http 模块?

答案是:理解底层,才能用好上层

  • 当你需要调优 HTTP 性能时,需要理解 TCP 连接复用
  • 当你排查网络问题时,需要理解 Socket 的生命周期
  • 当你设计实时通信时,需要理解 WebSocket 的原理
  • 当你构建微服务时,需要理解服务间通信的各种模式

框架帮你封装了复杂性,但当问题出现时,只有理解底层原理,才能快速定位和解决。

Node.js 网络编程的独特优势

Node.js 在网络编程方面有着与生俱来的优势:

  • 事件驱动:非阻塞 I/O 模型天然适合高并发网络应用
  • 轻量级:单线程模型减少了并发编程的复杂性
  • 生态丰富:从底层协议到高层框架,npm 生态应有尽有
  • 全栈统一:前后端使用相同语言,降低通信层的理解成本

本书的核心内容

TCP/UDP 编程

从 net 和 dgram 模块开始,理解套接字编程的基本概念:连接、数据传输、错误处理。你将学会构建 TCP 服务器和客户端,理解 UDP 的适用场景。

HTTP 协议深度解析

不仅仅是使用 http 模块创建服务器,而是深入理解 HTTP 协议的方方面面:请求解析、响应构建、头部处理、编码格式、连接管理。

HTTPS 与 TLS

安全通信是现代 Web 的基础。你将学习证书管理、TLS 配置、HTTPS 服务器搭建,以及安全最佳实践。

HTTP/2 与现代协议

HTTP/2 带来了多路复用、服务器推送等特性。你将学习如何在 Node.js 中使用 HTTP/2,以及何时应该升级。

WebSocket 实时通信

从 ws 库的使用到 WebSocket 协议的原理,掌握实时双向通信的实现方式。

DNS 与网络工具

DNS 解析、网络诊断、代理配置等网络开发常用技能。

本书结构

第一部分:网络基础——协议层次、Socket 概念 第二部分:TCP 编程——net 模块详解 第三部分:UDP 编程——dgram 模块详解 第四部分:HTTP 深度解析——http 模块与协议细节 第五部分:HTTPS 与安全——TLS/SSL 配置与实践 第六部分:HTTP/2——现代协议的使用 第七部分:WebSocket——实时通信实现 第八部分:高级主题——DNS、代理、网络工具

目标读者

本书适合:

  • 希望深入理解 Node.js 网络能力的开发者
  • 需要构建高性能网络服务的工程师
  • 正在设计实时通信系统的架构师
  • 对网络协议感兴趣的开发者

本书假设你已经有 Node.js 开发经验,了解异步编程和 Stream 基础。

技术约定

  • 基于 Node.js v20 LTS
  • 涵盖 IPv4 和 IPv6
  • 提供抓包分析和调试技巧
  • 包含性能测试和优化建议

网络是后端的灵魂

如果说文件系统是后端的"存储",那么网络就是后端的"灵魂"。没有网络,后端服务就失去了存在的意义。

掌握网络编程,你将拥有连接世界的能力。

让我们开始构建连接的世界。

序言 has loaded