接口测试之概述2
发送request的组成部分
1、请求地址
2、HTTP协议中常用的8种请求方法
由于PUT和DELETE请求方法不安全,所以很多时候,往往会使用POST来进行替代。
(1)HTTP协议中最常用的4种请求方法
GET:客户端从服务端获取资源(编程语言:get:获取信息、set:设置信息);
POST:客户端往服务端发送请求添加新的资源(如淘宝新商家上传商品);
PUT:客户端针对服务端已有的数据进行更新;
DELETE:客户端删除服务端已有的数据。
3、HTTP协议(http是一个无状态的协议,但是互联网产品的发展,需要记住用户的操作行为习惯)中的请求头
(1)其中较为常用的请求头有:
Content-Type:指的是数据格式;
Cookie:反爬虫,身份凭证;
Referer:发送请求的地址是从哪里来的;
User-Agent:发送网络请求的时候向服务端标注请求是通过什么浏览器或者什么软件(PostMan,JMeter)发送的。
User-Agent使用场景:如开发了一个APP,想看那个系统使用的用户比较多,统计user-agent的数据,进行分析就可以知道。
4、请求参数
(1)get: 路径参数 http://xxx.com/?name=wuya&age=18 ?key1=value1&key2=value2(get的请求参数与数据格式没任何关系);
(2)post: payload(谷歌浏览器)中显示了请求的参数(请求头中的数据格式决定了请求参数的格式)。
response响应组成部分
5、协议状态码
(1)200 请求成功
(2)301 永久重定向
(3)302 临时重定项
(4)400 Bad Request 客户端请求错误(测试失误)
错误原因:请求参数不对或者请求头不对。
(5)401 Unauthorized 无权限访问该系统
(6)403 Forbidden 有权限但是禁止访问
(7)404 请求的资源不存在(请求的地址不存在,所以导致请求的资源也是不存在)
(8)405 不被允许的请求方法(你请求的方法,没有定义对应的请求方法,但是你去进行访问 )
(9)500 服务器内部错误(程序员的错误)
错误类型包括:空指针( Null PointExpection)、堆栈溢出(在测试选择项的时候,选择很多很多的项,同时触发,看是否会暴露该问题)、OOM(内存泄露) Out Of Memory 、其他异常:Expection。
(10) 504 GateWay Timeout 网关超时
即客户端发送了请求,但是网关(API Getaway)处理超时。
6、响应数据:响应数据返回的数据格式是由响应头里面的content-type来决定的。
7、响应头(response headers)
(1)content-type:指明返回的响应数据的数据格式是什么;
(2)set-cookie:服务端返回给客户端的登录凭证。
8、常用的数据格式
(1)表单格式:application/x-www-form-urlencoded; charset=UTF-8;
(2)json格式:application/json;charset=UTF-8 json数据格式:基于JSON的数据格式,
但是数据类型是字符串;
(3)text/html格式 :返回的是基于html的数据格式;
(4)text/xml:返回的是基于xml的数据格式。
9、cookie、session、tokeon
(1)cookie:主要是存储用户操作行为的数据,在早期的互联网产品中,用户登录系统的凭证都是由cookie来进行记录的,但是由于是存储在客户端的(本机的电脑),所以是不
安全的,基本目前登录认证的凭证不会再使用cookie的技术了。
(2)session:由于cookie是存储在客户端的,它不安全,所以session是把登录成功后的数据存储在服务端。
session流程:
一、客户端输入账户和密码,点击登录;
二、登录成功后,会在服务端把用户登录成功后的信息生成一个sessionid的凭证,并且存
储在服务端;
三、然后服务端通过响应头中的set-cookie把生成的sessionid返回给客户端;
四、客户端再次查看个人主页,客户端会通过请求头中的cookie,把set-cookie返回的
sessionid带上,发送给服务端;
五、服务端接收到客户端发送的sessionid,和存储在服务端的session ID作一个对比;
六、如果对比一致,用户可以继续反问系统的任何功能,如果对不一致,立刻跳转到登录的页面。
(3)token:本质上是session的原理,我们可以把它理解为一个令牌,每次登录成功后,
返回的token都是随机的字符串 jwt的技术来实现。
token流程:
一、客户端输入账户和密码,点击登录;
二、登录成功后,会在服务端把用户登录成功后的信息生成一个Token的凭证,同时了存储
在服务端;
三、服务端会通过响应数据或者是响应头中的set-cookie返回给客户端;
四、那么客户端再次向服务端发送请求,会在请求参数或者请求头中的Authuration中带上
返回来的token发送给服务端;
五、服务端接收到客户端发送的Token,和存储在服务端的Token作一个对比;
六、如果对比一致,用户可以继续反问系统的任何功能,如果对不一致,立刻跳转到登录
的页面。
10、HTTPS协议