1、 设计(论文)专用纸i毕业论文毕业设计(论文)题目: Linux 下 HTTP 服务器设计学院: 信息与自动化学院专业: 通信工程年级:学生姓名:指导教师单位: 通信工程系指导教师姓名:指导教师职称:设计(论文)专用纸ii(本页装订为任务书 , 任务书需要由指导教师拿到学院教务处盖教学附院长的签章方生效,本页之后采用昆工教务处下发的毕业设计论文专用纸格式写作和打印)设计(论文)专用纸第 i 页 毕业设计(论文)题目: Linux 下 HTTP 服务器设计学院: 信息与自动化学院专业: 通信工程年级:学生姓名:指导教师单位:指导教师姓名:指导教师职称:设计(论文)专用纸第 ii 页 Title:
2、 Design of HTTP Server Based on Linux Faculty: Faculty of Communication Engineering and AutomationSpecialty: Communication EngineeringClass:Author:Directors Unit:Director:Directors title:设计(论文)专用纸第 iii 页 目录摘要 .vAbstract .vi前言 .vii第一章 绪 论 .11.1 课题背景 .11.2 课题研究的目的和意义 .1第二章 HTTP 服务器的相关理论基础 .32.1 Linux
3、系统简介 .32.2 TCP/IP 协议分析 .42.2.1 TCP/IP 协议概述 .42.2.2 网络层协议(IP 协议) .52.2.3 传输层协议(TCP 和 UDP) .72.3 Linux 下网络编程介绍 .92.3.1 Socket 简介 .102.3.2 Socket 创建 .102.3.3 Socket 配置 .112.3.4 建立连接 .132.3.5 数据传输 .142.3.6 结束传输 .152.3.7 Socket 编程的基本步骤 .162.3.8 I/O 复用介绍 .162.3.9 Linux 下的 I/O 复用支持 .172.3.10 Linux 下 EPOLL
4、的使用 .192.4 HTTP 协议分析 .222.4.1 HTTP 协议概述 .222.4.2 HTTP 工作原理 .232.4.3 HTTP 请求报文分析 .252.4.3 HTTP 响应报文分析 .262.4.4 HTTP/1.0 主要特征 .272.4.5 HTTP/1.1 简介 .282.5 本章小结 .29第三章 HTTP 服务器设计 .303.1 需求分析 .303.2 HTTP 服务器模型 .303.3 HTTP 服务器实现目标 .313.4 HTTP 服务器设计思路 .313.5 HTTP 服务器功能模块图 .32设计(论文)专用纸第 iv 页 3.6 HTTP 服务器工作流
5、程 .323.7 HTTP 服务器核心设计思想 .353.8 本章小结 .35第四章 HTTP 服务器 实现 .364.1 网络连接模块 .364.1.1 数据结构与接口设计 .364.1.2 epoll 接口实现 .374.2 HTTP 协议处理模块 .394.2.1 数据结构与接口设计 .394.3 HTTP 服务提供模块 .424.3.1 数据结构与接口设计 .424.4 HTTP 服务主程 序 .444.5 HTTP 服务器运 行与测试 .454.5.1 HTTP 服务器运行 .454.5.2 HTTP 服务器测试 .464.6 本章小结 .49第五章 结 论 .50第六章 总结与体会
6、 .51谢辞 .52参考文献 .53附录 .55附录 1 软件使用说明 .55附录 2 英文原文 .57附录 3 英文翻译 .58设计(论文)专用纸第 v 页 摘要Linux 操作系统是一个开放源代码的免费操作系统。它不仅有安全、稳定、成本低的特点,而且很少发现有病毒传播。HTTP 服务器是 web 服务器的一种,它是基于超文本传输协议 HTTP 的服务器。基于 Linux 具有稳定、可靠、安全和强大的网络功能这些优点,使得其主要应用于服务器领域。所以本文选择在 Linux 环境下实现一个 HTTP 服务器。本文研究了 Linux 下 HTTP 服务器的设计与实现。在 Linux 系统中采用
7、HTTP 协议和浏览器完成数据的传输。阐述了 Linux 套接字编程的方法、EPOLL 等 I/O 复用编程模型。详细分析了 HTTP 协议内容以及客户端与服务器之间的通信过程。本文实现了客户端浏览器和服务器端以 HTTP 协议进行请求和响应的功能。同时对服务器进行了一个简单的压力测试。所有程序代码均为 Linux 下的 C 语言编程。关键字: Linux、HTTP 服务器、HTTP 协议、EPOLL设计(论文)专用纸第 vi 页 AbstractThe Linux operate system is a free operate system which opens a source cod
8、eNot only it has characteristics such as safe,stability,and the low cost,but also it seldom disseminates the VirusHTTP server is one of the Web servers and it bases on HTTP protocolAs the Linux operating system has the function of stable,reliable,safe and powerful network, it mainly used in servers.
9、To realize a HTTP server in the Linux environment is the best choiceThis paper introduces design and implement of HTTP server in Linux operating systemIn the Linux system and browser used HTTP protocol for data transmission. This paper expounds the method of Linux socket programming and EPOLL I/O mu
10、ltiplexing programming model.Detailed analysis the communication process between client and server and HTTP protocol.This paper realizes the function that the client browser requests and the server responds by HTTP agreement.Make a simple pressure test on the server.All program code use the C langua
11、ge programming in Linux operating system.Keyword: Linux, HTTP Server, HTTP protocol, EPOLL设计(论文)专用纸第 vii 页 前言随着 Internet 的迅速发展与普及,网络已经延伸到世界的各个角落。在该技术基础上发展起来的 www,通过超文本向用户提供全方位的多媒体、超媒体信息,从而为全世界的 Internet 用户提供了一种获取信息、共享资源的途径。由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就受到了热烈
12、的欢迎,走红全球,并迅速得到了爆炸性的发展。 所以 Web 服务器在网络中的地位日益重要。当今社会中已有了许多知名的商用服务器,如 Microsoft IIS、IBM WebSphere、BEA WebLogic、Apache、Tomcat 等。但往往这些功能强大的服务器其结构也相当复杂,规模较大,在一些特定应用情景下(如嵌入式设备)就不太适合了。同时一个简单小巧的服务器也有利于我们学习网络编程的相关知识,对服务器原理也能有进一步的了解。本文设计实现了一个功能简单、结构小巧的 HTTP 服务器,采用 EPOLL 多路 I/O复用机制来实现并发服务。网络编程采用 socket,服务器端创建套接字、绑定套接口、设置套接口为监听模式,将该监听套接字加入 EPOLL 事件列表,然后无限循环等待 EPOLL 返回,对返回事件的套接字进行读或写的处理。若为新连接,则将其加入到 EPOLL 事件列表;若为已有连接则读取其请求或向其发送响应;若客户端已断开或已发送完响应,服务器端就断开该连接,并将该套接字从 EPOLL 事件列表中移除。主要提供对静态请求的处理,解析客户端请求报文,回送请求的文件和响应报文的功能。设计(论文)专用纸第 viii 页