服务器计算机专业毕业论文(HTTP服务器设计)

http://hao123.com  时间:2021-03-01  阅读:()

`

学号1000017962100

密级________________

武汉大学毕业论文

Linux下HTTP服务器设计

院系名称计算机

专业名称 计算机科学技术

学生姓名 王雄

指导教师 张文涛

王雄毕业论文

郑重声明

本人呈交的学位论文是在导师的指导下独立进行研究工作所取得的成果所有数据、 图片资料真实可靠。尽我所知除文中已经注明引用的内容外本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。

本人签名 王雄 日期 2012/04/19

王雄毕业论文

目录

摘要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v

Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vi

前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vii

第一章 绪 论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.1课题背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.2 课题研究的目的和意义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

第二章HT TP服务器的相关理论基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2.1 Linux系统简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

2.2 TCP/IP协议分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2.2.1 TCP/IP协议概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2.2.2网络层协议IP协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.2.3传输层协议TC P和UDP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

2.3 Linux下网络编程介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

2.3.1 Socket简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

2.3.2 Socket创建. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

2.3.3 Socket配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

2.3.4建立连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

2.3.5数据传输. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.3.6结束传输. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.3.7 Socket编程的基本步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.3.8I/O复用介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.3.9 Linux下的I/O复用支持. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.3.10 Linux下EPOLL的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4 HTTP协议分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.1 HTTP协议概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.2 HTTP工作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.3 HTTP请求报文分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.3 HTTP响应报文分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.4 HTTP/1.0主要特征. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.4.5 HTTP/1.1简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

2.5本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

第三章 HT TP服务器设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.1需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.2 HTTP服务器模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.3 HTTP服务器实现目标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.4 HTTP服务器设计思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.5 HTTP服务器功能模块图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.6 HTTP服务器工作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.7 HTTP服务器核心设计思想. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

3.8本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

王雄毕业论文

第四章HT TP服务器实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.1网络连接模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.1.1数据结构与接口设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.1.2 epoll接口实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.2 HTTP协议处理模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.2.1数据结构与接口设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.3 HTTP服务提供模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.3.1数据结构与接口设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.4 HTTP服务主程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.5 HTTP服务器运行与测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.5.1 HTTP服务器运行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.5.2 HTTP服务器测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

4.6本章小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

第五章结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误未定义书签。

第六章总结与体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

谢辞. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

附录……………………………………………………………………………………………………. . .54

软件使用说明……………………………………………………………………………………. . .55

王雄毕业论文

摘要

Linux操作系统是一个开放源代码的免费操作系统。它不仅有安全、稳定、成本低的特点而且很少发现有病毒传播。 HTTP服务器是web服务器的一种它是基于超文本传输协议HTTP的服务器。基于Linux具有稳定、可靠、安全和强大的网络功能这些优点使得其主要应用于服务器领域。所以本文选择在Linux环境下实现一个HTTP服务器。

本文研究了Linux下HTTP服务器的设计与实现。在Linux系统中采用HTTP协议和浏览器完成数据的传输。阐述了Linux套接字编程的方法、 EPOLL等I/O复用编程模型。详细分析了HTTP协议内容以及客户端与服务器之间的通信过程。本文实现了客户端浏览器和服务器端以HTTP协议进行请求和响应的功能。 同时对服务器进行了一个简单的压力测试。所有程序代码均为Linux下的C语言编程。

关键字 L inux、 H TTP服务器、 H TTP协议、 EP O L L

王雄毕业论文

Abstract

The Linux operate system is a free operate system which opens a sourcecode Not only it has characteristics such as safe stability,and the lowcost,but also it seldomdisseminates the Virus HTTP server is one of theWebservers and it bases on HTTP protocol As the Linux operating system has thefunction of stable reliable safe and powerful network, it mainly used inservers.To realize a HTTP server in the Linux environment is the best choice

This paper introduces design and implement of HTTP server in Linuxoperating system In the Linux system and browser used HTTP protocol for datatransmission. This paper expounds the method of Linux socket programming andEPOLL I/O multiplexing programming model.Detailed analysis the communicationprocess between client and server and HTTP protocol.This paper realizes thefunction that the client browser requests and the server responds by HTTPagreement.Make a simple pressure test on the server.All program code use theC language programming in Linux operating system.

Keyword: Linux, HTTP Server, HTTP protocol, EPOLL

王雄毕业论文

前言

随着Internet的迅速发展与普及 网络已经延伸到世界的各个角落。在该技术基础上发展起来的www通过超文本向用户提供全方位的多媒体、超媒体信息从而为全世界的Internet用户提供了一种获取信息、共享资源的途径。 由于用户在通过Web浏览器访问信息资源的过程中无需再关心一些技术性的细节而且界面非常友好 因而Web在Internet上一推出就受到了热烈的欢迎走红全球并迅速得到了爆炸性的发展。 所以Web服务器在网络中的地位日益重要。当今社会中已有了许多知名的商用服务器如Microsoft IIS、 IBM WebSphere、 BEAWebLogic、 Apache、Tomcat等。但往往这些功能强大的服务器其结构也相当复杂规模较大在一些特定应用情景下如嵌入式设备就不太适合了。同时一个简单小巧的服务器也有利于我们学习网络编程的相关知识对服务器原理也能有进一步的了解。

本文设计实现了一个功能简单、结构小巧的HTTP服务器采用EPOLL多路I/O复用机制来实现并发服务。 网络编程采用socket服务器端创建套接字、绑定套接口、设置套接口为监听模式将该监听套接字加入EPOLL事件列表然后无限循环等待EPOLL返回对返回事件的套接字进行读或写的处理。若为新连接则将其加入到EPOLL事件列表若为已有连接则读取其请求或向其发送响应若客户端已断开或已发送完响应服务器端就断开该连接并将该套接字从EPOLL事件列表中移除。主要提供对静态请求的处理解析客户端请求报文 回送请求的文件和响应报文的功能。

王雄毕业论文

第一章 绪 论

1.1课题背景

随着Internet的迅速发展与普及 网络已经延伸到世界的各个角落。在该技术基础上发展起来的www通过超文本向用户提供全方位的多媒体、超媒体信息从而为全世界的Internet用户提供了一种获取信息、共享资源的途径。随着计算机网络技术的发展 客户/服务器(Client/Server)结构逐渐向浏览器/服务器(Browser/Server)结构迁移 B/S方式已成为一种时尚大部分网络应用系统都是以这种B/S方式与网络用户交换信息。 B/S的基础是客户端要有一个浏览器程序服务器端要有一个与之对应的Web服务器。所以 Web服务器在B/S方式下起着决定性的作用且其应用地位日益重要。

Linux系统凭借其开源、稳定、高效的特点在服务器市场拥有较大的市场份额。Linux作为网络服务器市场的佼佼者 网络服务应用是其精华与核心。

当前商用的服务器大都规模比较大功能强大的同时结构也比较复杂。 自己实现一个简单小巧的HTTP服务器对于理解服务器工作原理知识或针对一些特定情景下的HTTP服务器应用来说不失为一种比较好的方式。

1.2 课题研究的目的和意义

随着Internet的普及网络已经深入到了我们的生活跟我们息息相关。 Linux系统作为网络应用的重要平台如何更好的去学习和使用Linux系统便是我们要面对的问题。同时作为当今互联网最主要的应用——www服务其为全世界的I nt erne t用户提供了一种获取信息、共享资源的途径。 www服务主要的提供者就是其后端的HTTP服务器所以如何更为高效的研究和学习Web服务器的相关知识也是我们必须要关注的。

本文在Linux环境下设计和实现了一个简单的HTTP服务器。使用socket库完成网络底层的通信使用HTTP协议来和客户端进行数据传输使用EPOLL多路I/O复

王雄毕业论文

用机制来完成并发服务最后还进行了一个简单的并发性能测试。通过对此课题的研究学习我们能更好的掌握Linux系统的使用加深对HTTP协议的理解。 同时能对服务器设计的相关理论和实践有一定了解。

王雄毕业论文

spinservers:圣何塞10Gbps带宽服务器月付$109起,可升级1Gbps无限流量

spinservers是Majestic Hosting Solutions LLC旗下站点,主营国外服务器租用和Hybrid Dedicated等,数据中心在美国达拉斯和圣何塞机房。目前,商家针对圣何塞部分独立服务器进行促销优惠,使用优惠码后Dual Intel Xeon E5-2650L V3(24核48线程)+64GB内存服务器每月仅109美元起,提供10Gbps端口带宽,可以升级至1Gbp...

Friendhosting全场VDS主机45折,虚拟主机4折,老用户续费9折

Friendhosting发布了今年黑色星期五促销活动,针对全场VDS主机提供45折优惠码,虚拟主机4折,老用户续费可获9折加送1个月使用时长,优惠后VDS最低仅€14.53/年起,商家支持PayPal、信用卡、支付宝等付款方式。这是一家成立于2009年的老牌保加利亚主机商,提供的产品包括虚拟主机、VPS/VDS和独立服务器租用等,数据中心可选美国、保加利亚、乌克兰、荷兰、拉脱维亚、捷克、瑞士和波...

PacificRack(年付低至19美元),夏季促销PR-M系列和多IP站群VPS主机

这几天有几个网友询问到是否有Windows VPS主机便宜的VPS主机商。原本他们是在Linode、Vultr主机商挂载DD安装Windows系统的,有的商家支持自定义WIN镜像,但是这些操作起来特别效率低下,每次安装一个Windows系统需要一两个小时,所以如果能找到比较合适的自带Windows系统的服务器那最好不过。这不看到PacificRack商家有提供夏季促销活动,其中包括年付便宜套餐的P...

http://hao123.com为你推荐
个性qq资料`谁有最新 最有个性的QQ个性资料godaddy美国GODADDY 域名支持域名别名解析吗?开机滚动条电脑开机滚动条要走好几次怎么点亮qq空间图标怎样点亮qq空间的图标人人逛街人人逛街评论怎么不显示链接了?好像4月28日就不能显示了。是什么原因呢?宕机人们说的宕机是什么意思机械键盘轴机械键盘的轴哪种好?微信怎么看聊天记录怎样查找一个人的微信聊天记录中国杀毒软件排行榜中国杀毒软件排行价格在线最好的免费b2b?
域名网站 泛域名绑定 t牌 128m内存 bash漏洞 哈喽图床 12306抢票攻略 云全民 腾讯云分析 网站木马检测工具 共享主机 免费吧 网络空间租赁 香港新世界中心 php服务器 谷歌台湾 主机返佣 免费个人网页 重庆联通服务器托管 腾讯云平台 更多