主要目标是从流行的 Web 服务器代码库(用 C 实现)中学习,优先考虑结构/设计而不是整个代码中的巧妙技巧。
我没有包括 Apache,因为它的代码库比上面提到的两个大一个数量级。
最佳答案
实际上,Apache 代码的可读性很强。它有大量的代码库,因为它做了很多事情。但它结构良好,很容易理解。您还可以查看 APR 库(Apache Portable Runtime),其中有很多可供学习的小东西。
IMO 如果你想学习编程,你应该从低调的项目开始——而不是 HTTPd,而是更简单的东西。
nginx 和 LightHTTPd(就像 Apache)都是生产质量的软件,这意味着学习曲线非常陡峭。不幸的是,学习通常意味着挖掘文件以了解为什么会这样——任何成熟的项目都会随着年龄的增长而存在。
如果您只是喜欢 C 和学习设计,您可能需要查看 FreeBSD 或其衍生产品。根据我的经验,这是一个更好的起点:那里有许多各种规范的工具和库。他们的 TODO 列表永远不会是空的,这很好地指导了从哪里开始。
关于c - 哪个有更好的代码库可以从 : nginx or lighttpd? 中学习,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3074399/