1
HTTP协议介绍
在进行协议一致性测试之前先简单介绍一下HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则,它在TCP/IP协议簇中位于应用层。

请求报文主要由四部分组成:
1. 请求行:请求行包括请求方法、URL和HTTP的协议版本,其中请求方法主要包括GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
2. 请求头:请求头用于说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力,请求头信息种类非常多,在此就不一一介绍了。
3. 空行:请求头部后面的空行时必须加上的。
4. 内容实体:内容实体里边包含请求数据,请求数据可以有也可以没有,但当请求数据没有的时候也需有空行。

响应报文也由由四部分组成:
1.状态行:状态行包括协议版本、状态码、状态码描述组成,其中状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类,如200 OK表示客户端请求成功。
2.响应头:服务器的响应讯息,如HTTP版本,压缩方式,响应文件类型,文件编码等。
3. 空行:请求头部后面的空行时必须加上的。
4.内容实体:内容实体里边包含客户端向服务端请求的响应数据。

2
HTTP协议一致性的测试规范
由于HTTP协议是客户端和服务端进行数据传输的一种规则,支持客户端/服务器模式,因此HTTP协议一致性测试主要包括两方面的测试,既HTTP服务器测试和HTTP客户端测试。
2.1 HTTP服务器测试
HTTP服务器测试主要包括请求方法GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT的接收测试。


3
如何实现HTTP协议一致性测试
以测试HTTP服务器为例,使用python搭建HTTP客户端,用来模拟客户端发出的HTTP请求以此检测服务器响应,具体步骤:
(1)Client_Socket = Socket(); //创建客户端套接字
(2)Client_Socket.Connect(); //连接指定服务器端口
(3)Client_Socket.Send(); //向socket中写信息
(4)Client_Socket.Close(); //关闭Socket连接

若为HTTP客户端测试,则使用python搭建HTTP服务器,用来模拟服务器端的HTTP应答以此检测客户端发出请求,具体步骤:
(1)Server_Socket = socket(); //创建Socket
(2)Server_Socket.bind(); //绑定Socket和端口号
(3)Server_Socket.listen(); //监听该端口号
(4)Server_Socket.accept(); //接收客户端连接请求
(5)Server_Socket.receive(); //从Socket中读取字符
(6)Server_Socket.Close(); //关闭socket连接
4
总结


