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

王雄毕业论文

蓝速数据(58/年)秒杀服务器独立1核2G 1M

蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...

RAKsmart:美国洛杉矶独服,E3处理器/16G/1TB,$76.77/月;美国/香港/日本/韩国站群服务器,自带5+253个IPv4

RAKsmart怎么样?RAKsmart机房即日起开始针对洛杉矶机房的独立服务器进行特别促销活动:低至$76.77/月,最低100Mbps带宽,最高10Gbps带宽,优化线路,不限制流量,具体包括有:常规服务器、站群服务器、10G大带宽服务器、整机机柜托管。活动截止6月30日结束。RAKsmart,美国华人老牌机房,专注于圣何塞服务器,有VPS、独立服务器等。支持PayPal、支付宝付款。点击直达...

A400互联1H/1G/10M/300G流量37.8元/季

A400互联是一家成立于2020年的商家,本次给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐。目前,商家推出香港cn2节点+cmi线路云主机,1H/1G/10M/300G流量,37.8元/季,云上日子,你我共享。A400互联优惠码:七折优惠码:0711A400互联优惠方案:适合建站,个人开发爱好者配置...

http://hao123.com为你推荐
怎么在qq空间里添加背景音乐如何在qq空间中添加背景音乐网站运营网络运营主管的主要工作职责是什么?qq空间装扮qq空间的装扮空间在哪?腾讯文章腾讯罗剑楠是何许人也?神雕侠侣礼包大全神雕侠侣手游华山论剑礼包有什么 怎么领取二层交换机什么是三层交换机?什么是二层叫交换机?有什么区别?bluestackbluestacks下载的东西在哪什么是云平台什么是云平台管理软件,一个云平台软件应该具有哪些基本功能gbk编码表如何制作GBK与Unicode的对照表rewritebase如何使用WampServer2.0软件
域名投资 个人域名注册 美国服务器租用 中国域名交易中心 淘宝抢红包攻略 naning9韩国官网 linode代购 200g硬盘 183是联通还是移动 泉州电信 国内域名 浙江服务器 ledlamp 深圳域名 酸酸乳 空间服务器 阿里云邮箱怎么注册 美国代理服务器 web服务器有哪些 德国代理ip 更多