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

一个简单的Web服务器的例子SHTTPD.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18章 一个简单的Web服务器的例子SHTTPD 在第六章的用户空间网络程序简介中对HTTP协议进行了简单的介绍,本章将实现一个简单的Web服务器程序—SimpleHTTPDemo,简称SHTTPD。这个Web服务器可以实现简单的用户配置、静态网页相应等功能。按照如下步骤进行设计和编写程序。 定义需求,明确需求定义。 对需求进行分析,明确实现的方式和关键的问题,进行模块设计 按照模块设计,进行编码 最后进行编译和测试 18.1 SHTTPD的需求分析 Web服务器SHTTPD可以实现动态配置、多客户访问、CGI支持、支持HTTP/1.0版本,最终能实现简单的可用型Web服务器,多种浏览器可以正常访问SHTTPD上的网页。 18.1.1 SHTTPD启动参数可动态配置的需求 服务器dHTTP可以动态配置启动参数,例如服务器的侦听端口、支持客户端并发访问的数量、超时时间的设置、访问web网页的路径等。采用参数配置和文件配置两种支持方式,在优先级上,参数配置比文件配置的优先级高,参数配置的选项值会覆盖文件配置的选项。 1.命令行参数配置 2.文件配置 18.1.1 SHTTPD启动参数可动态配置的需求 18.1.2 SHTTPD的多客户端支持的需求 SHTTPD支持多个客户端的并发连接,在同一时刻允许多个客户端同时成功获得服务器上的网页资源,这是现代服务器的基本属性。SHTTPD启动时的处理单元初始化了两个,并发访问数量为2,当客户端增加时,会自动根据现场情况增加处理单元,最大为4个。 18.1.2 SHTTPD的多客户端支持的需求 18.1.3 SHTTPD支持方法的需求 HTTP协议中定义了八种方法,用来来表示对指定数据的操作的性质和特点: HEAD方法。 GET方法。 POST方法。 PUT上传指定资源 DELETE 删除指定资源 TRACE方法。 OPTIONS方法。 CONNECT方法。 HTTP服务器至少应该实现Get和Head方法,可能的话,也实现OPTIONS方法。 18.1.4 SHTTPD支持的HTTP协议版本的需求 超文本传输协议从开始出现到现在已经演化出了很多版本,它们中的大部分都是向下兼容的。在RFC 2145中描述了HTTP版本号的用法。客户端在请求的时候先告诉服务器客户端所采用的HTTP协议版本号,而后者则在响应中采用相同或者更早的协议版本。目前版本有0.9、1.0和1.1版本。 HTTP/0.9版本 HTTP/1.0版本 HTTP/1.1版本 18.1.5 SHTTPD支持头部的需求 HTTP协议的头部有很多内容,本书中仅介绍几个常用的头域。 主机头域: 参考头域: 时间头域: 范围头域: 用户代理头域: 18.1.6 SHTTPD定位URI的需求 URI是Universal Resource Identy的简写,是同一资源标识符的意思,它是一种格式化的字符串,通过名称、地址或者其他别的特征来确定网络资源的位置。URI已经广为人知,例如WWW地址、通用文件标识符、统一资源定位器(URL)、统一资源名称(URN)等。 1.URI的一般语法 2.HTTP URL 3.URI 比较 18.1.7 SHTTPD支持CGI的需求 CGI脚本是任何运行在Web服务器上的程序,CGI是Common Gateway Interface的缩写,“通用网关接口”的意思。简单的讲,CGI脚本是一个可以运行在Web服务器上的程序,有浏览器的输入触发。使用这种脚本,可以执行服务器端的任何操作,但CGI脚本通常用于构建服务器程序和其他系统程序,例如数据库之间的桥梁。 CGI脚本可能是一个脚本,或者一个二进制可执行程序,也就是说它可能是一个编译好的程序或者批命令文件或者其他可执行的东西。它的一个共同的特性是可以执行并将结果反馈回来。 CGI脚本可以利用如下的两种方法使用:作为一个表单的ACTION的响应对象的URL。 18.1.8 SHTTPD错误代码的需求 错误代码,即状态码是试图理解和满足请求的三位数字的整数码。状态码的第一位数字定义应答类型,后两位数字没有任何类型任务。第一位数字有五种值: -1xx: 报告的,接收到请求,继续进程。 -2xx? 成功,操作成功的收到。 -3xx? 重发,为了完成请求,必须采取进一步措施。 -4xx? 客户端出错,请求包括错的顺序或不能完成。 -5xx? 服务器出错?,服务器无法完成显然有效的请求。 18.2 SHTTPD的模块分析和设计 要实现SHTTPD服务器,需要对服务器的架构和模块进行仔细的分析,例如客户、服务器模式的选型,CGI的实现方法、命令行脚本的解析等。本节对18.1小结中的需求进行仔细的分析,提供一种解决的方法。 18.2.1 SHTTPD的主

文档评论(0)

178****9325 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档