最终项目:构建多线程 Web 服务器
这是一段漫长的旅程,但我们已经到达了这本书的结尾。在这个 章节中,我们将一起再构建一个项目来演示一些 我们在最后几章中介绍的概念,以及之前的一些回顾 课。
对于我们的最终项目,我们将创建一个 Web 服务器,它显示 “hello” 并且看起来像 Web 浏览器中的图 20-1。
这是我们构建 Web 服务器的计划:
- 了解有关 TCP 和 HTTP 的一些知识。
- 侦听套接字上的 TCP 连接。
- 解析少量 HTTP 请求。
- 创建适当的 HTTP 响应。
- 使用线程池提高服务器的吞吐量。
在开始之前,我们应该提到一个细节:我们将使用的方法不会 是使用 Rust 构建 Web 服务器的最佳方式。社区成员拥有 在 crates.io 上发布了许多可用于生产的 crate,它们提供了更完整的 Web 服务器和 线程池实现,而不是我们将构建的。但是,我们在此 章是帮你学习,不是走捷径。因为 Rust 是一个 systems 编程语言中,我们可以选择我们想要的抽象级别 使用 并且 可以 进入 比 其他 中 可能 或 实际 的 级别 更低 语言。因此,我们将手动编写基本的 HTTP 服务器和线程池 因此,您可以学习 Crate 背后的一般想法和技术 将来使用。
本文档由官方文档翻译而来,如有差异请以官方英文文档(https://doc.rust-lang.org/)为准