基于Linux的2种HTTP服务器实现与对比分析

2017-09-30 03:01:56江存
现代计算机 2017年24期
关键词:分析模型

江存

基于Linux的2种HTTP服务器实现与对比分析

江存

(四川大学计算学院,成都 610000)

探讨Linux环境下的多线程并发编程的问题,介绍采用C语言实现基于动态线程池模式的简单服务器与基于epoll+多线程模式的简单服务器,采用Webbench进行压力测试,并对结果做出分析与思考。

线程池;epoll;并发编程;HTTP

0 引言

HTTP协议是互联网中重要的协议,Web浏览器、服务器和相关的应用程序都是HTTP互通的,对其进行研究十分有必要。本文着重研究分析了HTTP服务器的设计与实现方式,一个设计架构良好的服务器需要高效稳定可扩展性,尽可能满足多的任务请求。本文着重设计实现了态线程池模式和epoll加多线程模式,并对其进行分析。

1 原理分析

1.1 HTTP协议简介

http服务器是基于TCP协议的应用层协议,名为超文本传输协议。Web客户端与服务器端进行数据传输就是依靠HTTP协议实现的。它是全球因特网使用的公共语言。

通常,一个客户端与服务器建立连接之后,会发送一个请求个服务器,请求报文的格式一般为:请求起始行、请求首部字段和主体部分。服务器在将报文解析出来,在发送一个响应报文,和请求报文类似,也分为三个部分:响应起始行、响应首部、响应主体。

请求报文格式如下:

<method> <reque-uri> <version>

<headers>

<entity-body>

响应报文格式为:

<version> <status> <reason-pharse>

<headers>

<entity-body>

●方法(method)

客户希望服务器对资源进行的动作。如get,post等方法。

●请求 URL(request-URL)

所请求的资源地址。

●版本(version)

所使用的HTTP协议版本。

●状态码(status)

这三位数字描述了请求过程中所发生的情况。

●原因短语(reason-phrase)

数字状态码的可读版本,包含行终止序列的所有文本。……

登录APP查看全文

猜你喜欢
分析模型
一半模型
隐蔽失效适航要求符合性验证分析
重尾非线性自回归模型自加权M-估计的渐近分布
电力系统不平衡分析
电子制作(2018年18期)2018-11-14 01:48:24
电力系统及其自动化发展趋势分析
3D打印中的模型分割与打包
FLUKA几何模型到CAD几何模型转换方法初步研究
中西医结合治疗抑郁症100例分析
在线教育与MOOC的比较分析
一个相似模型的应用