网站大量收购独家精品文档,联系QQ:2885784924

嵌入式Web服务器Thttpd移植.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Web服务器Thttpd移植

第18章 嵌入式Web服务器Thttpd移植 Thttpd是一个简单的、小型的、可移植的、快速的以及安全的HTTP服务器。正因为它具有这些特点,将其应用在资源受限的嵌入式产品中非常合适。本章将介绍其编译、调试、使用和移植过程。 18.1 Thttpd介绍 Thttpd是一款小而快,且安全的HTTP服务器。下面将通过分析源代码介绍Thttpd工作过程。本章介绍thttpd是基于thttpd-2.25b版本进行介绍。 18.1.1 Web服务器比较 比较有3种常用Web服务器:Httpd、Thttpd和Boa。Httpd是最简单的一个Web服务器,它的功能最弱,不支持认证,不支持CGI(Common Gateway Interface,通用网关接口)。Thttpd和Boa都支持认证、CGI等,功能都比较全。Boa源代码开放、性能可靠、稳定性好,但是仅能作为一个单任务的Web服务器。所以,使用简单、小巧、易移植、快速和安全的Thttpd嵌入式Web服务器是一个明智的选择。 另外,还有几款嵌入式Web服务器:Lighttpd、Shttpd、Mathopd、Minihttpd、Appweb、Goahead。读者有兴趣可以自己动手编译后进行测试,然后应用在自己的项目中。 18.1.2 Thttpd的特点 Thttpd的特点是高效、安全,并且支持URL流量控制。基于这些特点其在嵌入式方面的应用很有前景。下面分别介绍其特点: 1.安全性 2.高效性 3.流量控制 18.1.3 Thttpd核心代码分析 Thttpd工作流程的主逻辑在thttpd.c文件的main()函数中。该函数中描述了Thttpd服务建立服务,接收请求,处理请求,日志文件以及断开连接的过程。下面分析建立Web服务器的核心函数httpd_initialize()。 18.2 Thttpd编译和HTML页面测试 前面一章已经介绍了Boa的编译,与Boa或者其它Web服务器都类似的是Thttpd也有配置文件thttpd.conf,该文件在contrib/redhat-rpm目录下。 18.2.1 配置文件介绍 配置文件对于任何Web服务器都是非常重要的,Tomcat是在Windows上开发Web程序常用的服务器。配置Tomcat时有个格式固定的server.xml文件,在其中填写对应的内容。Thttpd也有配置文件thttpd.conf的配置也是一样,和前一章Boa的配置文件boa.conf类似。下面先给出配置文件,在编译的时候如果出现错误,首先对照配置文件进行查找。 18.2.2 Thttpd编译 编译Thttpd的过程与前面介绍的编译的方法基本类似,这里按照:编译-遇到问题-修正后重新编译的顺序进行。下面介绍Thttpd编译的详细过程。 (1)准备Thttpd的源代码。这里使用的源文件为thttpd-2.25b.tar.gz,读者可以到网上下载更新的版本。 (2)创建安装目录。在编译安装源代码时,创建自己的安装目录,也可以按照默认的方式去安装。笔者认为创建一个安装目录比较合适,安装完成后可以很快知道安装目录下生成哪些工具和哪些库等文件。 (3)解压源代码和编译。解压源码后,进入代码目录使用configure命令生成Makefile文件。然后make进行编译,然后执行make install进行安装。 18.2.3 运行和测试Thttpd 下面运行生成的Web服务器,并通过HTML进行测试。本小节将介绍三部分内容:编写测试主页,运行Web服务器,通过HTML进行测试。 18.3 CGI脚本测试 下面测试CGI脚本程序。对CGI程序进行测试时,首先应该修改配置文件,指定CGI程序的路径。CGI脚本的测试也包括三个部分:编写测试代码,编译测试代码,执行测试。 18.3.1 编写测试代码 CGI的文件应该放在目录/home/httpd/html/cgi-bin下,同时修改thttpd.conf修改nocgipat为cgipat。 在/home/httpd/html/cgi-bin目录下编写hello.c文件,该测试文件内容为打印“Hello,World.”。 18.3.2 编译测试程序 将hello.c文件编译生成hello.cgi文件。编译命令如下: # gcc -o hello hello.c 编译生成hello后,如果该文件不是在目录/home/httpd/html/cgi-bin下,则将hello文件复制到该目录下。如果编译的文件名为hello.cgi,在测试的过程中,就会出现下载该文件。编译好的cgi文件同样需要将其权限修改为只读。 # chmod 444 hello 18.3.3 测试CGI脚本 打开客户端的浏览器,在浏览器中输入下面地址进行访问

您可能关注的文档

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档