接口测试基础-HTTP协议

来源:互联网 发布:练六级英语听力的软件 编辑:程序博客网 时间:2024/05/16 01:49

一句话开场:一切脱离业务的测试都是吹牛,一切脱离协议的接口测试都是抓瞎。。。。。。。


做接口测试离不开网络,说起网络,我们回归本源,从万维网开始。

万维网www(World Wide Web)并不是某种特殊的计算机网络。万维网是一个大规模的,联机式的信息储存所。万维网用链接的方法能非常方便的从因特网上的一个站点访问另一个站点。客户程序向服务器发出请求,服务器向客户返回客户需要的万维网资料。

万维网使用统一资源定位符URL(Uniform Resource Locator)来标记万维网上的各种文档,并使每一个文档在整个因特网的范围内具有唯一的标识符URL。HTTP(超文本传送协议)是一个应用层协议,它使用TCP连接进行可靠的传送。HTML(超文本标记语言),使得万维网页面的设计者可以很方便的用链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的主机屏幕上将这些页面显示出来。


URL的格式一般由以下四部分组成:<协议>://<主机>:<端口>/<路径>, 比如我们访问CSDN网站的一个URL:http://edu.csdn.net/courses/o399_s403,这里省略了默认端口

HTTP协议本身是无连接的,虽然HTTP使用了TCP连接,但通信双方在交换HTTP报文前不需要先建立HTTP连接。

用户在点击鼠标连接万维网时,HTTP协议首先要和服务器建立TCP连接。TCP的三次握手,在三次握手的前两部分完成后,万维网就把HTTP请求报文作为三次握手的第三个豹纹的数据发给万维网服务器。服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给用户。


HTTP有两类报文:

请求报文:从客户向服务器发送请求报文

响应报文:从服务器到客户的回答

由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码率,因此各个字段的长度都是不确定的

HTTP请求报文和响应报文都是由三个部分构成,可以看出,这两种报文的区别就是开始行不同。

1. 开始行,用于区分是请求报文还是响应报文,在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行。在开始行的三个字段之后都以空格分隔开。

2. 头部行, 用来说明浏览器,服务器或报文主体的一些信息。头部可以有好几行,也能不使用。

3. Body, 在请求报文或者响应报文中可能不使用这部分


  • 开始行

请求报文的第一行“请求行”有三部分内容,方法,请求资源的URL,以及HTTP的版本

方法其实就是一些命令,对所请求的对象进行的操作。

以下是一些经常使用的几种方法:


LINK和UNLINK 已经被HTTP 1.1废弃,不再支持。

当客户端向服务器发送请求时,返回的请求,会给出客户本次请求处理的结果,描述处理结果状态的就是响应报文里的状态码。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

状态码一般是由3位数字和原因短语组成的,大致有以下分类


下面简单列出各种状态码:

状态码

原因短语

基本描述

200

OK

请求已正常处理

204

No Content

请求处理成功!但没有资源可返回

206

Partial Content

客户端进行了范围请求,服务器成功执行了这部分GET请求

301

Moved Permanently

永久性重定向,请求的资源已被分配了新的URL

302

Found

临时性重定向,请求的资源已被分配了新的URL,希望用户能使用新的URL访问

303

See Other

请求对应的资源存在着另一个URL,应使用GET方法定向获取请求的资源

304

Not Modified

资源已找到,但未符合条件请求

307

Temporary Redirect

与302有相同的含义

400

Bad Request

请求报文中存在语法错误

401

Unauthorized

发送的请求未通过HTTP认证的认证信息

403

Forbidden

不允许访问资源

404

NOT Found

服务器上没有请求的资源

500

Internal Server Error

服务器端在执行请求时发生了错误

503

Service Unavailable

服务器暂时处于超负载或正在进行停机维护


  • 头部行
HTTP协议的请求和响应报文中必定包含HTTP头部。头部内容为客户端和服务器分别处理请求和响应提供所需要的信息,能起到传递额外重要信息的作用。使用头部字段是为了给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容。
HTTP头部字段是有头部字段名和字段值构成的,中间用“:”分隔: 头部字段名:字段值 (Content-Type:text/html)。
  HTTP头部字段根据实际用途被分为以下4种类型

通用头部字段,请求报文和响应报文两方都会使用的头部。

请求头部字段,从客户端向服务器端发送求情报文时使用的头部。补充了请求的附加内容,客户端信息,响应内容相关优先级等信息。


响应头部字段,从服务器端向客户端返回响应报文时使用的头部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

实体头部字段,针对请求报文和响应报文的实体部分使用的头部。补充了资源内容更新时间等与实体有关的信息。




阅读全文
0 0
原创粉丝点击