接口/请求方式/抓包/OSI/tcp/ip/
接口
http api接口:
是走http协议,通过路径来区分调用的方法,
请求报文都是key-value形式的,
返回报文一般都是json串,
有get和post等方法,这也是最常用的两种请求方式。
可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
接口文档
首先,接口文档应该包含以下内容:
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
为什么测接口
所以,接口测试的必要性就体现出来了:
①可以发现很多在页面上操作发现不了的bug
②检查系统的异常处理能力
③检查系统的安全性、稳定性
④前端随便变,接口测好了,后端不用变
接口参数设计考虑
在使用接口测试的时候,只需要调整请求参数就可以。
接口测试,我一般使用的是postman,测试的时候这几个方面:
改变请求参数,看响应结果是否和接口文档一致
查看参数是否有敏感信息(比如个人账户信息,资金信息)
查看是否对关键参数进行加密处理(密码信息)
所有列表页接口必须考虑排序值
接口返回的图片地址能否打开,图片尺寸是否符合需求;
接口有翻页时,页码与页数的异常值测试;
当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求
每个接口入参的默认值、异常类型、非空校验
入参支持多个值时,要考虑传的值的个数多的情况下,接口会不会报错
http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个客户端和服务器端请求和应答的标准
短连接/长连接,http1.0/http1.1 区别 ,
常用的请求方法Get/post区别
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
常见状态码
-
200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
-
300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
-
400 400代表客户端发送的请求有语法错误
-
401代表访问的页面没有授权,
-
403表示没有权限访问这个页面
-
404代表没有这个页
-
-
5xx: 代表服务器有异常,
-
500代表服务器内部异常;
-
503服务器当前不能处理客户端的请求,一段时间后可能恢复正常;
-
504代表服务器端超时,没返回结果。
-
OSI七层模型
七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
TCP/IP协议
抓包
-
抓包工具:charles,fiddler,httpwatch
-
原理:相当于中介,在请求与服务器之间,走代理
-
移动端抓包:同一网络情况下
-
如何抓取加密https请求。
Cookie/session
Session和Cookie的主要区别在于:
Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中
cookie与session的联系:
当服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是session的sessionId。。这样才能保证客户端发起请求后客户端已经登录的用户能够与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session,同时也能够确保不同页面之间传值时的正确匹配。
TCP和UDP的优缺点
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。
TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
UDP的优点: 快,比TCP稍安全 UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……
UDP的缺点: 不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。 基于上面的优缺点,
那么: 什么时候应该使用TCP: 当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 在日常生活中,常见使用TCP协议的应用如下: 浏览器,用的HTTP FlashFXP,用的FTP Outlook,用的POP、SMTP Putty,用的Telnet、SSH QQ文件传输 …………
什么时候应该使用UDP: 当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下: QQ语音 QQ视频 TFTP ……
有些应用场景对可靠性要求不高会用到UPD,比如长视频,要求速率
TCP协议:是一种面向连接的,可靠的,基于字节流的传输层通信协议 1).有序性:数据包编号,判断数据包的正确次序 2).正确性:使用checksum函数检查数据包是否损坏,发送接收时都会计算校验和 3).可靠性: 发送端有超时重发,并有确认机制识别错误和数据的丢失 4).可控性:滑动窗口协议与拥塞控制算法控制数据包的发送速度
UDP协议:用户数据报协议,面向无连接的传输层协议,传输不可靠. 1).无连接,数据可能丢失或损坏 2).报文小,传输速度快