一、什么是API接口
接口的定义
接口:应用程序接口,简称API。
- 是数据交互的入口和出口,是一套规范,一套标准。
- 接口本质上是程序开发的函数和方法,提供参数和返回值。
接口的分类
软件接口:作用是适配,后端(服务器) 前端(界面)
硬件接口:作用是适配,常见的硬件接口:USB接口,type c接口,lighting接口
访问接口的介质
介质:URL(统一资源定位符(Uniform Resource Locator),也被称为web地址。)
二、什么是接口测试
接口测试的定义
测试接口的返回数据是否和预期一致。可以使用浏览器、postman、jmeter和soupui等接口测试工具,也可以通过代码访问。
接口定义规则
可以在接口文档查看
- 访问地址
- 请求方式
- 请求参数
三、HTTP协议
HTTP是一种应用层协议,用于在客户端和服务器之间传输超文本(Hypertext)数据。
HTTP 协议通过请求和响应的方式进行数据交互,客户端向服务器发送请求,服务器接收到请求后进行处理,返回响应给客户端。
HTTP (Hypertext Transfer Protocol,超文本传输协议)由三部分组成:
- 请求报文(Request Message):客户端向服务器发送的请求消息,包括请求行、请求头部和请求正文三部分组成。
- 响应报文(Response Message):服务器向客户端返回的响应消息,包括状态行、响应头部和响应正文三部分组成。
- 连接管理:用于建立和管理客户端与服务器之间的连接,包括 TCP 连接管理和 HTTP 持久连接等。
HTTP请求
HTTP 请求由三个部分组成:请求行、请求头和请求体。
请求行
请求行包含了请求方法、请求 URL 和 HTTP 版本信息,其基本格式如下:
<Method> <URL> HTTP/<Version>
<Method>
GER | 请求指定的资源, 使用GET的请求应该只用于获取数据 |
POST | 发送数据给服务器,创建或者更新资源 |
PUT | 创建或者替换目标资源 |
PATCH | 用于对资源进行部分修改 |
DELETE | 删除资源 |
补充:GET和POST的区别
区别 | GET | POST |
作用 | 获取资源 | 创建资源 |
请求主体 | 无请求主体 | 有请求主体 |
幂等性 | 幂等 | 非幂等 |
缓存 | 可以缓存 | 一般不缓存 |
历史记录和书签 | 可存放 | 不可 |
<URL>
<Version>` 表示所使用的 HTTP 协议的版本,例如 HTTP/1.1。
请求头
请求头包含了一些关于请求的信息,例如 Accept、User-Agent、Authorization 等,用于控制请求的内容和格式。请求头的格式如下:
Header-Name>: <Header-Value>
请求体
请求体用于传递客户端发送的数据,例如表单数据、JSON 数据等。请求体的格式和内容根据具体的业务需求而定,可以为空。在使用 GET 请求方法时,请求体通常为空;在使用 POST、PUT、DELETE 等请求方法时,请求体通常包含了需要传递的数据。
HTTP 请求的完整格式
<Method> <URL> HTTP/<Version>
<Header-Name1>: <Header-Value1>
<Header-Name2>: <Header-Value2>
...
<Header-NameN>: <Header-ValueN>
<Request Body>
其中,请求行、请求头和请求体之间以空行分隔。
HTTP响应
HTTP 响应是指服务器向客户端发送的响应消息,由三部分组成:状态行(响应行),响应体,响应体
状态行(http状态码)
状态行(Status Line):描述了服务器响应的状态,包括 HTTP 版本号、状态码和状态描述。
HTTP 状态码用于表示服务器对请求的处理结果,共分为 5 类,每类有对应的状态码和状态描述,
分类 | 分类描述 |
1xx | 服务器已收到请求,正在处 |
2xx | 服务器成功处理了请求。 |
| |
3xx | 重定向,需要进一步的操作以完成请求 |
| |
4xx | 客户端错误,请求包含语法错误或无法完成请求 |
| |
5xx | 服务器错误,服务器无法完成请求 |
|
响应头
响应头(Header):包含了响应的元数据信息,例如日期、服务器信息、响应长度、响应类型等。
Date: Sat, 15 May 2023 09:20:32 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.6.27
Content-Length: 1234
Content-Type: text/html; charset=utf-8
响应体
响应正文(Body):服务器返回的实体主体部分,具体内容根据请求的资源和响应的数据格式而定。
四、Session、Token和Cookie
Session、Token 和 Cookie 都是用于在 Web 应用程序中进行用户身份验证和会话管理的机制。
Session
Session 是一种服务器端技术,用于跟踪用户的会话状态。在用户登录时,服务器会创建一个唯一的会话 ID,并将其保存到用户的浏览器 Cookie 中,然后在后续请求中通过 Cookie 来识别用户。服务器可以在会话中保存用户信息和状态,以便在后续请求中进行访问和修改。
Token
Token 是一种通过 HTTP 请求头或参数进行身份验证的机制。在用户登录时,服务器会生成一个唯一的 Token,并将其返回给客户端。客户端在后续请求中通过在请求头或参数中添加 Token 来进行身份验证。Token 可以在客户端中存储,也可以存储在服务器端的数据库中。
Cookie
Cookie 是一种客户端技术,用于在客户端存储少量的数据。在 Web 应用程序中,Cookie 通常用于存储用户的会话 ID,以便在后续请求中识别用户。Cookie 可以在服务器端设置,并发送给客户端,客户端在后续请求中通过 Cookie 来传递数据。
总的来说,Session、Token 和 Cookie 都是用于身份验证和会话管理的机制,它们在实现上有所不同,但都可以用于保护 Web 应用程序的安全和稳定性。