测试眼中的接口
可以独立部署成服务的协议接口
常见的接口协议
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 方法.
常用的 TCP/IP 协议可以参考
OSI 七层网络模型与 TCP/IP 四层模型介绍 https://www.cnblogs.com/pangguoping/p/8638450.html
来源: http://www.bubuko.com/infodetail-3113551.html