- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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脚本 打开客户端的浏览器,在浏览器中输入下面地址进行访问
您可能关注的文档
- 小学科学论文:重结构材料,促探究深度.doc
- 小学科学课件三上《我看到了什么》.ppt
- 小学第十一册课外阅读指导教学设计.doc
- 小学美术课件-夸张的五官.ppt
- 小学生心理活动课《让我们成为好朋友》教案设计.doc
- 小学英语三年级新教材培训.doc
- 小学英语歌曲校本教材.doc
- 小学英语语法重点归纳总结.doc
- 小学肢体语言.doc
- 小学苏教版一至六年级学的名言和成语.doc
- 第8课+现代社会的移民和多元文化+教学课件--高二下学期历史统编版(2019)选择性必修3.pptx
- 云南地方史+课件--2025届高三统编版(2019)历史二轮专题复习.pptx
- 国家安全教育大学生读本课件高教2024年版讲义合集(第三章更好统筹发展和安全路+第四章坚持以人民安全为宗旨+第五章坚持以政治安全为根本).pdf
- deepseek学习教程分析.pptx
- 《中华民族共同体概论》课件高教社2024版课件合集-第四讲天下秩序与华夏共同体演进(夏商周时期)+第五讲大一统与中华民族初步形成((秦汉时期)+第六讲“五胡”入华与中华民族大交融.pptx
- DeepSeek使用提示词使用技巧分享.docx
- 《中华民族共同体概论》课件高教社2024版课件合集-第六章+第七讲华夷一体与中华民族空前繁盛(隋唐五代时期)+第八讲共奉中国与中华民族内聚发展(辽宋夏金时期)+第九讲混一南北与中华民族大统合+第十章.pptx
- 《中华民族共同体概论》课件高教社2024版课件合集-第十三讲先锋队与中华民族独立解放+第十四讲新中国与中华民族新纪元+第十五讲新时代与中华民族共同体建设+第十六讲文明新路与人类命运共同体.pptx
- 《中华民族共同体概论》课件高教社2024版课件合集-第一讲中华民族共同体基础理论+第二讲树立正确的中华民族历史观+第三讲文明初现与中华民族起源+第四章+第五章.pptx
- 国家安全教育大学生读本课件高教2024年版讲义合集(绪论+第1章+第2章+第3章+第4章+第5章).docx
最近下载
- 南芯产品规格书SC8905.pdf
- 浙江省工程勘察设计大师申报表.doc
- 科学教师教学用书五年级上册 - 义务教育课程标准实验教材.pdf VIP
- A成都轨道交通工程机电系统施工工艺标准(第二版)2018.5.pdf
- (高清版)B-T 18380.36-2022 电缆和光缆在火焰条件下的燃烧试验 第36部分:垂直安装的成束电线电缆火焰垂直蔓延试验 D类.pdf VIP
- 电商平台账单导出流程.docx VIP
- 2024年人教版生物七年级上册《第二单元 多种多样的生物》第三章微生物大单元整体教学设计.docx
- 新版FMEA培训课件【第五版】.pptx
- 固态锂电池试制线生产线建设项目申请可行性研究报告.doc
- 护理工作职责与岗位职责培训课件.pptx
文档评论(0)