Lighttpd源码分析(网络出版----仅提供Ebook和按需印刷服务)
基本信息
内容简介回到顶部↑
本书主要针对lighttpd源码进行了深度剖析。主要内容包括:lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速传输方式,以及基本插件模块。本书针对的lighttpd项目版本为稳定版本1.4.20。
本书适合使用lighttpd的人员和爱好者参考。
本书适合使用lighttpd的人员和爱好者参考。
目录回到顶部↑
前言
第1章 lighttpd介绍与分析准备工作 1
1.1 lighttpd介绍 1
1.1.1 什么是lighttpd 1
1.1.2 lighttpd功能概述 1
1.2 源码分析的准备工作 3
1.2.1 lighttpd源码下载与组织结构 3
1.2.2 lighttpd源码分析工具 4
1.2.3 系统编译环境 6
1.2.4 lighttpd编译运行 6
1.2.5 其他准备 7
1.3 本书内容综述 7
1.4 本章总结 8
第2章 lighttpd网络服务主模型 9
2.1 概述 9
2.2 lighttpd主进程执行流程 10
2.2.1 lighttpd进程守护化 10
2.2.2 lighttpd多进程网络服务模型 14
2.3 lighttpd信号处理机制 20
2.3.1 信号的概念 20
第1章 lighttpd介绍与分析准备工作 1
1.1 lighttpd介绍 1
1.1.1 什么是lighttpd 1
1.1.2 lighttpd功能概述 1
1.2 源码分析的准备工作 3
1.2.1 lighttpd源码下载与组织结构 3
1.2.2 lighttpd源码分析工具 4
1.2.3 系统编译环境 6
1.2.4 lighttpd编译运行 6
1.2.5 其他准备 7
1.3 本书内容综述 7
1.4 本章总结 8
第2章 lighttpd网络服务主模型 9
2.1 概述 9
2.2 lighttpd主进程执行流程 10
2.2.1 lighttpd进程守护化 10
2.2.2 lighttpd多进程网络服务模型 14
2.3 lighttpd信号处理机制 20
2.3.1 信号的概念 20
前言回到顶部↑
作为最为优秀的轻量级Web Server之一,Lighttpd有着众多的忠实拥护者和使用者。本书就是一本介绍分析Lighttpd源码的初级读本,其主要目标在于:一方面让已经接触过网络编程的读者可以从Lighttpd这个开源项目中学习到更深入实际的网络编程知识,另一方面也可以让使用Lighttpd作为自己管理站点Web服务器的读者能更有效地使用、优化甚至定制自己的Lighttpd服务器应用程序。
目前对于学习网络编程最好的参考书籍当属《UNIX网络编程》(第3版)1,但是其包含内容众多,讲解太过广泛深入,不是在短期时间内就能很好领会并灵活运用的,因此它更适合当作我们桌边的手册或圣经。在实践项目中学习,从实践源码中理解,这一直是我们学习的最好方法,虽然当前书市也有不少关于实践项目介绍的书,但是由于实在太过庞大(比如Apache)或实践项目不具有代表性,选择性的讲解使得许多细节被忽略,细节不明朗使得读者也很难清楚地从整体上去把握。本书选择的Lighttpd开源项目内容较少却功能实现完整,是难得的学习网络编程的源码材料。另外,我们在讲解该项目源码时紧密结合Web开发的相关RFC协议文档(比如RFC 822、RFC 1034、RFC 1035、RFC 1738、RFC 2068、RFC 2396、RFC 2616、RFC 2732、RFC 3986等)对所分析的代码为什么这样写都做出了详细的解释,并指明了其依据的是哪个RFC的哪个部分,可以让读者明确查找方向,以快速、进一步地对其深入理解。
总的来说,Lighttpd源码虽然代码量不多,但是其设计巧妙,效率高,实现功能完备并且易扩展,因此能在众多优秀Web Server中取得一席之地。Lighttpd编码风格优美,C代码简洁明了,是学习Linux/C网络编程、熟悉Http服务器编写的良好范例。另外,源码把和Web有关的众多国际标准或协议(如Http、Url、Html等)实现得恰如其分,阅读Lighttpd源码,不管是C基础还是网络协议实现,都可以从中获益良多。
本书针对的Lighttpd项目版本为最新(2008年12月16日)的稳定版本1.4.202,一共包含有137个文件。在本书的实际讲解中,这些文件并不会被全部讲到,这主要是由于Lighttpd插件太多,不可能一一讲解到,但是由于这些插件有一个统一的骨架,因此对其中一个插件的理解自然可以类推到其他插件,而本书对Lighttpd插件的整体以及几个具有代表性的插件进行了详细讲解,因此读者完全不用担心会影响自己对Lighttpd源码的理解。除了源码分析知识外,另外一些涉及的技巧(比如Linux操作技巧)、工具等也会给出提示和介绍,以便初学者也能顺利阅读本书。
本书的目标读者定位在想要学习Linux/C网络编程或者想要提高自己网络编程水平以及对Web服务后台开发感兴趣的计算机专业开发研究人员;对于使用Lighttpd作为自己管理站点Web服务器的用户阅读本书也能获取一定的相关帮助。
作为本书的作者,我把阅读Lighttpd源码的总结尽可能详细地记录下来,供大家学习参考。由于本人才疏学浅,又经验不足,因此本书中会存在不足之上,请大家不吝赐教。
最后,感谢Jan Kneschke3大师为我们提供了这么优秀的开源项目,感谢曾经在CU、CSDN、BAIDU、LQ等论坛、网站直接或间接地帮助过我的各位热心网友。
目前对于学习网络编程最好的参考书籍当属《UNIX网络编程》(第3版)1,但是其包含内容众多,讲解太过广泛深入,不是在短期时间内就能很好领会并灵活运用的,因此它更适合当作我们桌边的手册或圣经。在实践项目中学习,从实践源码中理解,这一直是我们学习的最好方法,虽然当前书市也有不少关于实践项目介绍的书,但是由于实在太过庞大(比如Apache)或实践项目不具有代表性,选择性的讲解使得许多细节被忽略,细节不明朗使得读者也很难清楚地从整体上去把握。本书选择的Lighttpd开源项目内容较少却功能实现完整,是难得的学习网络编程的源码材料。另外,我们在讲解该项目源码时紧密结合Web开发的相关RFC协议文档(比如RFC 822、RFC 1034、RFC 1035、RFC 1738、RFC 2068、RFC 2396、RFC 2616、RFC 2732、RFC 3986等)对所分析的代码为什么这样写都做出了详细的解释,并指明了其依据的是哪个RFC的哪个部分,可以让读者明确查找方向,以快速、进一步地对其深入理解。
总的来说,Lighttpd源码虽然代码量不多,但是其设计巧妙,效率高,实现功能完备并且易扩展,因此能在众多优秀Web Server中取得一席之地。Lighttpd编码风格优美,C代码简洁明了,是学习Linux/C网络编程、熟悉Http服务器编写的良好范例。另外,源码把和Web有关的众多国际标准或协议(如Http、Url、Html等)实现得恰如其分,阅读Lighttpd源码,不管是C基础还是网络协议实现,都可以从中获益良多。
本书针对的Lighttpd项目版本为最新(2008年12月16日)的稳定版本1.4.202,一共包含有137个文件。在本书的实际讲解中,这些文件并不会被全部讲到,这主要是由于Lighttpd插件太多,不可能一一讲解到,但是由于这些插件有一个统一的骨架,因此对其中一个插件的理解自然可以类推到其他插件,而本书对Lighttpd插件的整体以及几个具有代表性的插件进行了详细讲解,因此读者完全不用担心会影响自己对Lighttpd源码的理解。除了源码分析知识外,另外一些涉及的技巧(比如Linux操作技巧)、工具等也会给出提示和介绍,以便初学者也能顺利阅读本书。
本书的目标读者定位在想要学习Linux/C网络编程或者想要提高自己网络编程水平以及对Web服务后台开发感兴趣的计算机专业开发研究人员;对于使用Lighttpd作为自己管理站点Web服务器的用户阅读本书也能获取一定的相关帮助。
作为本书的作者,我把阅读Lighttpd源码的总结尽可能详细地记录下来,供大家学习参考。由于本人才疏学浅,又经验不足,因此本书中会存在不足之上,请大家不吝赐教。
最后,感谢Jan Kneschke3大师为我们提供了这么优秀的开源项目,感谢曾经在CU、CSDN、BAIDU、LQ等论坛、网站直接或间接地帮助过我的各位热心网友。







点击看大图





加载中...
