接口相关概念总结
测试眼中的接口
可以独立部署成服务的协议接口
常见的接口协议
HTTP 超文本传输协议
HTTPS 安全超文本传输协议
FTP 文件传输协议
比如xshell中的上传工具,采用的就是文件传输协议。
TCP 网络控制协议
IP互联网协议
UDP 用户数据协议
比如qq和微信等采用的就是用户数据协议
HTTP协议响应码
每一种响应码代表了服务端给我们反馈的响应状态,也就表示我们此次请求的结果。
1xx:信息响应类,表示接收到请求并且继续处理,即请求的一个中间状态。
2xx:处理成功响应类,表示动作被成功接收、理解和接受。
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理。
4xx:客户端错误,客户情况包含语法错误或者是不能正确执行。
5xx:服务端错误,服务器不能正确执行一个正确的请求。
HTTP
协议请求响应模型
graph TD
A(API) -->B(DB数据库)
B --> A(API)
A --> C(Client)
C --> A(API)
http
协议请求响应模式(一次请求的生命周期或简单的软件分层)具体过程如下:
场景(登录)
1、客户端发起请求到api接口层
1.1 用户在客户端填写用户名和密码,点击登录,发送请求
2、api接收到客户端发起的用户请求
2.1 api对业务逻辑进行验证
2.1.1 验证用户名和密码是否合法
比如:用户名要求必须为真是手机号码(11位,1开头,第二位是3、4、5、6、7、8、9)
如果验证失败,即用户名不合法,那么需要给客户端返回响应码
比如自定义的响应码:100001、100002、100003
100001代表用户名格式错误
100002代表用户名或密码错误
100003代码密码格式错误
3、api会将用户输入的数据发给db层
Create、Read、Update、Delete
(select * from user where userName = '' and password = '';)
3.1 数据库查询成功则返回1,失败则返回0
4、DB会将返回的查询数据库的条目数返回给api
5、api返回成功或失败的状态码给客户端
6、客户端将返回信息提示给用户
常用的HTTP
请求方式
GET
请求
http://127.0.0.1:8080?username=zhangsan&password=123456
POST
请求
url http://127.0.0.1:8080
请求体
{
[
"username":"zhangsan";
"password":"123456"
]
}
HTTP
请求的方法:
HTTP/1.1
协议中共定义了八种方法(有时也叫"动作"),来表明Request-URL
指定的资源不同的操作方式。
1、 OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送'*'的请求来测试服务器的功能性
2、 HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET
向特定的资源发出请求。注意:GET方法不应当被用户产生"副作用"的操作中。例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。
4、POST
向指定资源提交数据进行处理请求。(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
5、PUT
向指定资源位置上传其最新的内容。
6、DELETE
请求服务器删除Request-URL所标识的资源
7、TRACE
回显服务器搜狐到的请求,主要用于测试或诊断。
8、CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的
当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);
当服务器不认识或者不支持对应的请求方法时,应返回的状态码501(Not Implemented)
2)HTTP服务器至少应该事先GET和HEAD/POST方法。
其中最经常使用的方法有:GET、POST。
常用的TCP/IP协议可以参考