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

王雄毕业论文

webhosting24:€28/年,日本NVMe3900X+Webvps

webhosting24决定从7月1日开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,当然前提是价格依旧不变。目前来看,国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),这样的日本VPS还是有相当大的性价比的。官方网站:https://www.webhosting...

2021HawkHost老鹰主机黑色星期五虚拟主机低至3.5折 永久4.5折

老鹰主机HawkHost是个人比较喜欢的海外主机商,如果没有记错的话,大约2012年左右的时候算是比较早提供支付宝付款的主机商。当然这个主机商成立时间更早一些的,由于早期提供支付宝付款后,所以受众用户比较青睐,要知道我们早期购买海外主机是比较麻烦的,信用卡和PAYPAL还没有普及,大家可能只有银联和支付宝,很多人选择海外主机还需要代购。虽然如今很多人建站少了,而且大部分人都用云服务器。但是老鹰主机...

CloudCone闪购优惠洛杉矶MC机房VPS月$1.99 便宜可随意删除重开

CloudCone商家我们很多喜欢低价便宜VPS主机的肯定是熟悉的,个人不是特别喜欢他。因为我之前测试过几次,开通的机器IP都是不通的,需要删除且开通好几次才能得到一个可用的IP地址。当然他们家的优势也是有的,就是价格确实便宜,而且还支持删除重新开通,而且机房只有一个洛杉矶MC。实话,如果他们家能多几个机房,保持现在的特点,还是有很多市场的。CloudCone是来自美国的主机销售商,成立于2017...

http://hao123.com为你推荐
文件夹删不掉文件夹是文件夹删不掉怎么办?郭吉军二战中受害最大的国家?吴晓波频道买粉《吴晓波频道》《罗辑思维》《专栏精粹》怎么评价?微信如何建群微信建群怎么建arm开发板想购买一个ARM开发板,选什么类型的好中小企业信息化信息化为中小企业发展带来了哪些机遇vbscript教程vbs 学习方法以及 vbs 实例 有编程基础淘宝网页显示不正常淘宝网页不能正常显示qq空间打扮如何打扮QQ空间?创维云电视功能创维云电视是指什么
过期域名 新通用顶级域名 韩国加速器 国外bt 免费cdn加速 双拼域名 中国电信测速网 美国堪萨斯 最好的qq空间 免费cdn 100mbps 爱奇艺会员免费试用 1元域名 德隆中文网 西安主机 中国域名 中国联通宽带测试 网络速度 japanese50m咸熟 .htaccess 更多