接口基础
1、什么是API接口?
简单来说,接口就是系统或模块之间相互连接的部分,就称为接口。在软件测试中,我们可以理解为url就是一个接口,如:https://www.baidu.com/ 由客户端(浏览器)发送请求,服务端接收请求并做出响应。
2、接口定义规则?
接口定义的规则,我们一般可以查看接口文档,一般包括访问地址、请求方法、请求参数以及响应格式等。
3、什么是接口测试?
用户通过接口测试工具等客户端通过url向服务端发送数据或请求,看测试的接口的响应数据是否和预期结果一致。
4、接口url格式
http://www.forexample.com:80/futureloan/path/myproject.html?key=value&key1=value1#someDoument
url一般由以下几个部分组成:
- http:协议
- /www.forexample.com:域名/IP
- 80:端口
- futureloan:前缀,一般用于区分业务的
- path/myproject.html:路径
- ?key=value&key1=value1:查询参数
- #someDoument:锚点
5、HTTP协议
接口需要通过协议实现的,广泛使用的是http协议,http(超文本传输协议),用户通过客户端访问某个url地址,发送请求给服务端,在服务端接收请求之后,解析请求的数据,然后再返回给客户端响应的数据。
5.1请求方法
get: 请求指定的资源,获取数据。也就是说,我客户端想要什么资源,你服务器就给我什么资源,我要的是文本,你就给我原样返回文本。
post:发送数据给服务器,创建或更新资源。当客户端要传输什么资源给服务器,就用post。
put:创建或替换目标资源。主要用于传输文件,类似ftp的文件上传
patch:用于对资源进行部分修改
delete:删除资源
5.2 post和get的区别
5.3 请求头
Accept |
指定客户能够接收的内容类型 |
Accept Charset |
浏览器可以接收的字符编码集 |
Accept Encoding |
指定浏览器可以支持的web服务器返回内容压缩编码类型 |
Accept Language |
浏览器可接受的语言 |
Accept Ranges |
可以请求网页实体的一个或多个子范围字段 |
AuthorizationHTTP |
授权的授权证书 |
Cache Control |
指定请求和响应遵循的缓存机制 |
Connection |
表示是否需要持久连接 |
CookieHTTP |
请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器 |
Content Length |
请求的内容长度 |
Content Type |
请求的实体与对应的MIME信息 |
Date |
请求发送的日期和时间 |
Expect |
请求的特定服务器行为 |
From |
发出请求的用户的Email |
Host |
指定请求服务器的域名和端口号 |
If-Match |
只有请求内容与实体相匹配才有效 |
If-Modified-Since: |
如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。 |
If-None-Match |
如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变 |
If-Range |
如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。 |
If-Unmodified-Since |
只在实体在指定时间之后未被修改才请求成功。 |
Max-Forwards |
限制信息通过代理和网关传送的时间。 |
Pragma |
用来包含实现特定的指令。 |
Proxy-Authorization |
连接到代理的授权证书。 |
Range |
只请求实体的一部分,指定范围。 |
Referer |
先前网页的地址,当前请求网页紧随其后,即来路。 |
TE |
客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息 |
Upgrade |
向服务器指定某种传输协议以便服务器进行转换(如果支持 |
User-AgentUser-Agent |
的内容包含发出请求的用户信息。 |
Via |
通知中间网关或代理服务器地址,通信协议。 |
Warning
|
关于消息实体的警告信息 |
5.4 http响应状态码
1xx |
信息,服务器收到请求,需要请求者继续执行操作 |
2xx |
成功,操作被成功接收并进行处理 |
3xx |
重定向,需要进一步的操作以完成请求(某个接口不服务了,自动跳转到另一个地址) |
4xx |
客户端错误,请求包含语法错误或无法完成请求 |
5xx |
服务器内部错误,服务器在处理请求的过程中发生了错误 |
常见的响应状态码
状态码 |
英文名称 |
描述 |
200 |
OK |
请求成功。一般用于GET与POST请求 |
201 |
Created |
已创建。成功请求并创建了新的资源 |
301 |
Moved Permanently |
永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 |
Found |
临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
304 |
Not Modified |
未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
400 |
Bad Request |
客户端请求的语法错误,服务器无法理解 |
401 |
Unauthorized |
请求要求用户的身份认证 |
403 |
Forbidden |
服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 |
Not Found |
服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
405 |
Method Not Allowed |
客户端请求中的方法被禁止 |
500 |
Internal Server Error |
服务器内部错误,无法完成请求 |
503 |
Service Unavailable |
由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
5.5 响应头set-cookie和请求头cookie
set-cookie
是服务器设置的,就是服务端想把一些数据返回给客户端,然后由客户端保存在cookie中,当用户访问相同域名的不同接口时,cookie的数据就会自动传递到服务器中,通过在请求头加上cookie字段的方式。