服务器嵌入式WEB服务器的设计与实现毕业论文.doc

什么叫web服务器  时间:2021-05-08  阅读:()

武汉大学毕业设计(论文)用纸

嵌入式WEB服务器

摘 要

Linux操作系统是一个开放源代码的免费操作系统它不仅有安全、稳定、成本低的特点而且很少发现有病毒传播。近年来随着linux操作系统在我国的不断普及越来越多的服务器、工作站和个人电脑开始使用linux软件。基于linux具有稳定、可靠、安全和强大的网络功能这些优点本文选择在linux环境下实现一个Web服务器。

本文研究了HTTP协议实现了数据的传输 阐述了采用linux套接字编程接口的方法实现HTTP协议的方案详细分析了客户端和服务器之间的通信过程。本文在linux系统下实现一个Web服务器程序在局域网内将此服务器程序在一台计算机上运行使网内其它计算机访问这台服务器时实现客户端和服务器以HTTP协议进行请求和响应的功能。此外还编写了Web浏览器。

Web服务器实现的全部代码采用linux下的C语言编程可进一步提高系统运行速度并且增强了系统的安全性和可靠性。 Web浏览器代码是采用C++和Qt的编程界面设计是用Qt实现的。

关键词嵌入式 linux操作系统 H TTP协议;Web服务器 S ocket Inte rnet Q ti

武汉大学毕业设计(论文)用纸

Embedded WEB server

AB STRAC T

The Linux operate system is a free operate system which opens asource code.Not only ithas characteristics such as safe,stability,and the low cost,but also it seldom dissemiantes theVirus. In recent years,along with the Linux operatesystem in our country makes widelyavailable continuously,more and more servers,work stations and personal computer startusing Linux software.As the Linux operting system has the function of stable reliable,safeand formidable network,to realize a Web server in the Linux environment is the best choice.

This paper introduces design and implement of Web server in Linux operating system.The problem of how to realize data transmission by HTTP protocol which based on Linux isvaluable to research.This paper expounds realizing scheme for HTTP protocol,and gives outprotocol communication module,wih the method of Linux socket programming intefface,andanalyze the communication process between client and server. This paper realizes a Webserver procedure in Linux operating sysytem.In the local area network, if this serverprocedure runs on a computer,which can realizes the function that the client requests and theserver responds by HTTP agreement,when other computers in the net visit it.

The complete code of the Web server’s realization uses the C language programming inLinux operating system,which may further enhance the running rate,and strengthened thesecurity and reliability of the system.The code of Web browser’srealization uses The C++language and Qt,

Key wo rds:Embedded;Linux operating system;HTTP protocol;Web server;Socket;ii

武汉大学毕业设计(论文)用纸

目 录

摘 要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .I

ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .I I

1 绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1. 1 课题的研究意义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.2 国内外研究现状. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.3 论文研究内容和主要工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 相关理论与知识. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2. 1 Linux操作系统简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2.2 Web服务器的概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2.3 WEB服务器基本构架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2.3. 1 WEB服务器和浏览器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2.3. 2 WEB页面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

2.4 WEB系统的基本原理是请求/响应. . . . . . . . . . . . . . . . . . . . . . . . . . .6

2.5 WEB B/S的通信. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

2.5. 1 分析请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8

2.5.2 构造响应. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8iii

武汉大学毕业设计(论文)用纸

2.6 Linux下Socket网络编程基础知识. . . . . . . . . . . . . . . . . . . . . . . . .9

2.6. 1 Socket简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

2.6.2 Socket的定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

2.6. 3 Socket结构体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

2.6.4 Socket函数库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

2.6. 5 Socket编程的基本过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

2.7 HTTP协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

2.7. 1 HTTP URL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

2.7.2 HTTP请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

2.7. 3 HTTP响应. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

2.7.4 HTTP消息报头. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

3 WEB服务器的设计思路与方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3. 1 web服务器的模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3.2 web服务器如何工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3.3 web服务器的设计思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3.3. 1 web服务器的设计思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

3.3.2 web服务器的功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

3.3. 3 Web服务器的功能模块图. . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

3.4 web服务器的设计方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19iv

武汉大学毕业设计(论文)用纸

3.4. 1 Web服务器的工作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

3.4.2 web服务器的核心设计思想. . . . . . . . . . . . . . . . . . . . . . . . . . .20

3.4. 3 总体设计的关键点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

4 LINUX下WEB服务器的设计与实现. . . . . . . . . . . . . . . . . . . . . . . . . . .21

4. 1 客户端与服务器建立连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

4. 1. 1 基本概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

4. 1.2 建立一个Socket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

4. 1. 3 定义程序Socket的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

4. I.4 使用配置Sockct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

4. 1. 5 连接Socket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

4.2 客户端和服务器端之间的请求响应过程. . . . . . . . . . . . . . . . . . . . .24

4.2. 1 整体流程分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

4.2.2 服务器接受请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

4.2. 3 服务器处理客户端的请求并作出响应. . . . . . . . . . . . . . . . . . .25

4.3 Linux下Web服务器的运行与应用. . . . . . . . . . . . . . . . . . . . . . . . .29

5 Web服务器的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

5. 1 客户端与服务器建立请求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

6 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32v

武汉大学毕业设计(论文)用纸

6. 1 设计内容总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32

6.2 设计结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32

参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

致 谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

外文文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

中文翻译. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45vi

武汉大学毕业设计(论文)用纸

1 绪论

1 . 1 课题的研究意义

Internet的迅猛发展传统的Client/server体系结构(客户机/服务器) 渐渐的在某些方面显示出它的局限性 Browser/server结构(浏览器/服务器)的出现恰恰弥补了这种缺陷。 B/S方式已成为一种时尚大部分网络应用系统都是以这种B/S方式与网络用户交换信息。 B/S的基础是客户端要有一个浏览器程序服务器端要有一个与之对应的Web服务器。显然 Web服务器在B/S方式下起着决定性的作用因此一般互联网站都采用功能强大的通用Web服务器。

随着网络各个核心部分业务量的提高其访问量和数据流量快速增长处理能力和计算强度也相应增大使得单一设备根本无法承担而且许多企业级应用系统的应用请求具有突发性和紧急性的特点当应用访问急剧上升时容易造成网络瓶颈。解决这一问题的办法是采用多台嵌入式Web服务器为一个应用服务集群负载均衡机制就是为解决多个网络设备之间实现合理的业务量分配而提出的。

1 .2 国内外研究现状

目前在市场上有20到30种Web应用服务器每种服务器在实现对象组件支持、分布式计算、部署的速度和易用程度上采取了不同方式。

目前市场上主流Web服务器主要有以下几种产品

1 Apache由SUN公司开发的Apache服务器可以运行在包括Linux等多种系统平台之上。 Apache支持许多特性大部分通过编译的模块实现如很有用的URL重写定制日志文件以及过滤支持等。

2 Zeus Webserver3.3.8服务器 Zeus服务器在SMP (Symmetric Multi Processing的简称意为对称多处理系统 内有许多紧耦合多处理器这种系统的最大特点就是共享所有资源)环境下有优秀的可伸缩性并实现了常见的特性集合如访问控制、动态内容产生和安全等。

3. iPlanet Enterprise Edition 4. 1 Netscape公司开发的iPlanet具有现今高性能WEB服务器的特性如具有很高的可靠性、可用性、可维护性系统高度可扩展性等特点相对其它WEB服务器iPlanet还提供更多的JAVA功能。

4 AOLserver 3.3. 1  AOL公司开发的AOLserver 3.3. 1是一个多线程、可升级和扩展的WEB服务器。

5. Roxen WebServer 2. 1.31在Roxen中可以使用RXML语言生成动态网页内容。 RXML是函数形式的服务器端XML脚本语言它由Roxen服务器解析并执行。

6. Ji gsaw它由WWW组织(W3C)开发 W3C组织负责研究和规定网络协议的标准(如HTTP) 。它使用JAVA语言开发是成功的面向对象、功能全面的服务器。因为Ji gsaw

1

武汉大学毕业设计(论文)用纸

不受测试平台的限制所以J i gsaw是一个具有活力的、拥有无限潜能的优秀WEB服务器。

在嵌入式系统的应用中 由于HTMI语言的标准统一性只要在设备里建立一个微型web服务器人们就可以使用现有的Web浏览器与该设备进行双向交互、接收或发送信息。它为我们管理、控制和监测各种各样的设备提供了一个很好的途径只要设备接入了Internet我们就可以在世界上的任何地方十分方便地控制、操纵那些配备有微型Web服务器的设备。

在Internet上为了发布信息用户必须运行Web服务器程序。但现成的服务器程序有时候不能满足所有人的要求所以可以动手开发一个自己的Web服务器程序其功能就可由设计者定制的功能和需求决定了。

1 .3 论文研究内容和主要工作

本次设计就是需要完成一个简易的WEB服务器的设计实现web服务器基本功能:页面访问请求响应、 HTML文件的解析以及数据发送。所以在完成设计之前必须先了解WEB服务器设计的原理与结构。

一般来说 Web服务器通常由以下几个部分组成 (1)服务器初始化部分这部分主要完成Web服务器的初始化工作如建立守护进程、创建TCP套接字、绑定端口、将TCP套接字转换成侦听套接字进入循环结构等待接收用户浏览器连接 (2)接收客户端请求由于客户端请求以文本行的方式实现所以服务器一般也以文本行为单位接收 (3)解析客户端请求这部分工作比较复杂需要解析出请求的方法、 URL 目标、可选的查询信息及表单信息如果请求方法为HEAD则简单地返回响应首部即可如果方法是GET则首先返回响应首部然后将客户端请求的URL目标文件从服务器磁盘上读出再发送给客户端。 (4)发送响应信息之后关闭与客户机的连接

2

武汉大学毕业设计(论文)用纸

2 相关理论与知识

2. 1 Linux操作系统简介

简单点说 Linux是一套免费使用和自由传播的类Unix操作系统是一个基于可移植操作系统接口和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 同事它能运行一些主要的的Unix工具软件、 网络协议和应用程序。它还支持64和32位硬件。 Linux是一个性能稳定的多用户网络操作系统继承了Unix以网络为核心的设计思想。它是由全世界成千上万的程序员设计与实现的。是一个不受任何商品化软件版权制约、全世界都能够自由使用的Unix兼容产品。

Linux模块化的设计结构使它既能在廉价的PC机上实现Unix特性也能在价格高昂的工作站上运行具备多任务及多用户能力。 Linux系统软件不仅仅包括完整的Linux操作系统还包括了高级语言编译器、文本编辑器、等应用软件。另外它还包括图形用户界面就像WindowsNT一样我们能够使用窗口、菜单和图标进行操作。

Linux的优点可靠、稳定、安全和强大的网络功能。在一些软件的支持下能够实现WWW、 FTP、 DHCP、 E-mai l、 DNS等服务利用iptabl es/ipchains构建NAT和功能比较全面的防火墙。

2.2 Web服务器的概念

WWW是World Wide Web 环球信息网的缩写也可以简称为Web 中文名字为“万维网”。 WWW  World Wide Web )是一种建立在Internet上的全球性的、交互的、动态、多平台、分布式、 图形信息系统。它只是建立在Internet上的一种网络服务。它的开发最初是为了在科学家之间共享成果 科学家们可以将科研成果以图文形式方在网上进行共享。它的最基本的概念就是Hypertext超文本如果你用过Windows上的任何一种在线帮助系统你就会比较了解它的结构了。

它起源于1989年3月由欧洲量子物理实验室CERNthe European Laboratory forParticle Physics所发展出来的主从结构分布式超媒体系统。通过万维网人们只要通过使用简单的方法就可以很迅速方便地取得丰富的信息资料。 由于用户在通过Web浏览器访问信息资源的过程中无需再关心一些技术性的细节界面简单容易操作。长期以来人们只是通过传统的媒体如电视、报纸、杂志和广播等获得信息但随着计算机网络的发展人们想要获取信息已不再满足于传统媒体那种单方面传输和获取的方式而希望有一种主观的选择性。现在网络上提供各种类别的数据库系统如文献期刊、产业信息、气象信息、论文检索等等。 由于计算机网络的发展信息的获取变得非常及时、迅速和便捷。 到了1993年WWW的技术有了突破性的进展它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题使得WWW成为Interne t上最为流行的信息传播方式。 现在Web服务器成为I nte rnet上最大的计算

3

hostodo:2021美国独立日7折优惠促销NVMe硬盘的VPS,低至$13/年,还送DirectAdmin授权

7月4日是美国独立日,大致就是国庆节的意思吧。hostodo今年提前搞了个VPS大促销活动,4款便宜VPS,相当于7折,续费不涨价,本次促销不定时,不知道有多少货,卖完为止。VPS基于KVM虚拟,NVMe阵列,1Gbps带宽,自带一个IPv4+/64 IPv6,solusvm管理,送收费版DirectAdmin授权,VPS在用就有效! 官方网站:https://www.hostodo.com ...

选择Vultr VPS主机不支持支付宝付款的解决方案

在刚才更新Vultr 新年福利文章的时候突然想到前几天有网友问到自己有在Vultr 注册账户的时候无法用支付宝付款的问题,当时有帮助他给予解决,这里正好顺带一并介绍整理出来。毕竟对于来说,虽然使用的服务器不多,但是至少是见过世面的,大大小小商家的一些特性特征还是比较清楚的。在这篇文章中,和大家分享如果我们有在Vultr新注册账户或者充值购买云服务器的时候,不支持支付宝付款的原因。毕竟我们是知道的,...

提速啦香港独立物理服务器E3 16G 20M 5IP 299元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

什么叫web服务器为你推荐
proprietaryios11computationgraphipad连不上wifiipad2 wifi连接不上,刚连上就弹出一个 success页面联通版iphone4s怎么区分iphone4s电信版和联通版google中国地图谷歌卫星地图中文版下载在哪下??谷歌sb为什么搜索SB第一个是google?联通合约机iphone5iphone5联通合约机是怎么回事google统计怎样获得google ga 统计代码google统计google分析里的数据包括搜索引擎爬虫的数据吗?Google中文专题交流苹果5.1.1完美越狱ios5.1.1越狱后 好用的cydia软件源
华众虚拟主机管理系统 域名系统 工信部域名备案查询 德国vps 工信部域名备案 wordpress技巧 godaddy支付宝 12u机柜尺寸 国内加速器 权嘉云 dux 699美元 可外链网盘 绍兴电信 33456 双线机房 上海电信测速网站 ebay注册 谷歌台湾 测速电信 更多