服务器计算机专业毕业论文(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协议的理解。 同时能对服务器设计的相关理论和实践有一定了解。

王雄毕业论文

零途云:香港站群云服务器16IP220元/月,云服务器低至39元/月

零途云(Lingtuyun.com)新上了香港站群云服务器 – CN2精品线路,香港多ip站群云服务器16IP/5M带宽,4H4G仅220元/月,还有美国200g高防云服务器低至39元/月起。零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

Megalayer优化带宽和VPS主机主机方案策略 15M CN2优化带宽和30M全向带宽

Megalayer 商家主营业务是以独立服务器和站群服务器的,后来也陆续的有新增香港、菲律宾数据中心的VPS主机产品。由于其线路的丰富,还是深受一些用户喜欢的,有CN2优化直连线路,有全向国际线路,以及针对欧美的国际线路。这次有看到商家也有新增美国机房的VPS主机,也有包括15M带宽CN2优化带宽以及30M带宽的全向线路。Megalayer 商家提供的美国机房VPS产品,提供的配置方案也是比较多,...

http://hao123.com为你推荐
weipin唯品单号为16060958116346的快递在哪了呢?站长故事爱迪生发明东西的故事二叉树遍历怎么正确理解二叉树的遍历显卡温度多少正常显卡温度多少算正常?安卓应用平台安卓手机下软件哪个网站好网页打开很慢为什么我打开网页很慢安全漏洞web安全漏洞有哪些系统分析员如何成为系统分析师?什么是云平台什么是云系统?微信怎么看聊天记录如何查找微信聊天记录
下载虚拟主机 罗马假日广场 息壤备案 美国主机推荐 uk2 rackspace godaddy支付宝 监控宝 个人空间申请 蜗牛魔方 免费吧 tna官网 广州服务器 最好的qq空间 申请免费空间和域名 空间登录首页 服务器防火墙 wordpress中文主题 免费网络空间 服务器硬件配置 更多