API接口测试--HTTP协议简介
介绍API接口之前,先简单介绍一下HTTP协议,这样会更好掌握API接口测试。
HTTP(Hyper Text Transfer Protocol)协议即超文本传输协议,从服务端传输超文本到本地浏览器的传送协议。超文本指包括图片,视频,语音,文件等文本
像我们平时用浏览器访问百度网页,即使用的是HTTP协议,作用于服务器-客户端之间,客户端发送请求到服务端,服务端接受到请求进行响应到客户端,客户端进行显示。
HTTP请求消息Request
客户端发送一个HTTP请求,包括几部分:请求行、请求头部、换行、请求数据。
请求行中的第一个是请求方法,目前主要的有get ,post,put,delete等,以下是GET请求例子,使用Fiddler抓包百度首页
第一行是请求行 :首先是请求方法,GET;随后是URL https://www.baidu.com;然后是协议版本 HTTP/1.1
接下来的都是请求头部,从Host到Cookie都是。
由于这里没有请求数据,所以未显示。
以下是POST请求,以登录慕课网为例,使用fiddler抓取请求
第一行是请求行 :首先是请求方法,POST;随后是URL https://www.imooc.com/passport/user/login;然后是协议版本 HTTP/1.1
接下来的都是请求头部,从Host到Cookie都是。
Cookie下面是换行,此行是必须的
最后是请求数据,登录的用户名,密码。
HTTP响应消息Reponse
上一段讲解了,客户端即浏览器发出的请求数据,本段讲解服务器对请求做出的响应的数据。
响应数据也包括四个部分:状态行 消息报文 空行 响应正文
以上面登录慕课网的响应数据为例:
第一行为状态行:协议版本:HTTP/1.1 ; 状态码:200 ;状态消息 OK
接下来从Sever到Content-Length都是消息报文,用来说明客户端要使用的一些附加消息
换行,紧接着是响应正文,服务器返回客户端的文本信息
HTTP响应状态码
上面提到响应数据的状态行里面有一个状态码,一般是三位数字,第一个数字定义了状态码类别,如下:
常见的状态码有如下几种:
200 OK
客户端请求成功
301 Moved Permanently
请求永久重定向
302 Moved Temporarily
请求临时重定向
304 Not Modified
文件未修改,可以直接使用缓存的文件。
400 Bad Request
由于客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized
请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden
服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
404 Not Found
请求的资源不存在,例如,输入了错误的URL
500 Internal Server Error
服务器发生不可预期的错误,导致无法完成客户端的请求。
503 Service Unavailable
服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。