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

王雄毕业论文

Sharktech10Gbps带宽,不限制流量,自带5个IPv4,100G防御

Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...

美国服务器20G防御 50G防御 688元CN2回国

全球领先的IDC服务商华纳云“美国服务器”正式发售啦~~~~此次上线的美国服务器包含美国云服务器、美国服务器、美国高防服务器以及美国高防云服务器。针对此次美国服务器新品上线,华纳云也推出了史无前例的超低活动力度。美国云服务器低至3折,1核1G5M低至24元/月,20G DDos防御的美国服务器低至688元/月,年付再送2个月,两年送4个月,三年送6个月,且永久续费同价,更多款高性价比配置供您选择。...

legionbox:美国、德国和瑞士独立服务器,E5/16GB/1Gbps月流量10TB起/$69/月起

legionbox怎么样?legionbox是一家来自于澳大利亚的主机销售商,成立时间在2014年,属于比较老牌商家。主要提供VPS和独立服务器产品,数据中心包括美国洛杉矶、瑞士、德国和俄罗斯。其中VPS采用KVM和Xen架构虚拟技术,硬盘分机械硬盘和固态硬盘,系统支持Windows。当前商家有几款大硬盘的独立服务器,可选美国、德国和瑞士机房,有兴趣的可以看一下,付款方式有PAYPAL、BTC等。...

http://hao123.com为你推荐
51自学网站网上自学网站有哪些?最好是免费的,我想学习网页设计简体翻译成繁体简体中文转换成繁体怎么转换?在线漏洞检测网站好像有漏洞,直接看代码可以找出来吗?快速美白好方法快速美白方法arm开发板ARM开发板具体有什么作用?有什么商业价值?申请证书申请毕业证书腾讯文章怎么在手机腾讯网发文章怎么点亮qq空间图标怎么点亮QQ空间的图标创维云电视功能什么是创维云电视啊?创维云电视是什么意思?创维云电视功能创维电视怎么用,我买了个创维云电视,现在不知道怎么用手机往电视上传照片,谁能解答以下,
sugarhosts 老鹰主机 hawkhost优惠码 10t等于多少g 服务器日志分析 贵州电信宽带测速 淘宝双十一2018 新站长网 html空间 免费吧 美国网站服务器 免费测手机号 申请网页 阿里云官方网站 免费ftp 韩国代理ip 湖南idc supercache 万网注册 脚本大全 更多