1 请求
请求(Requset)一般包括:请求首行、请求头、请求体
1.1 请求首行
请求首行中包含了:
①请求方法
- 请求方法常用的有:get、post
- get 常用于获取服务器的资源,读取数据。post往往是创建或者修改资源。
- get的请求参数的形式是查询字符串参数,一般放在URL中,以【?key1=v1&key2=v2】的形式。post的请求参数可以是Text、Form、Json、File的形式。
- get没有请求体,post有请求体。
- 其他:put是更新服务器资源(update)。delete修改服务器资源(delete from)。都有请求体,请求参数。options可使服务器返回该资源所支持的HTTP请求方法。
②请求路径
- 一个URL可以视为一个接口。
- http://域名/请求路径 默认80端口。
- https://域名/请求路径 默认443端口。
- 域名会被DNS服务器解析为ip地址。
③协议版本号
1.2 请求头
请求头是请求时的头部信息。比如:
UserAgent(客户端类型,像PC,浏览器等)。
Cookies(存放用户非敏感信息)。
Host等等
1.3 请求体
get没有请求体,请求体中往往携带了请求参数。
2 响应
2.1 响应的状态码:
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,服务器返回新地址,客户端需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
2.2 状态码列表:https://www.runoob.com/http/http-status-codes.html
常见状态码及含义(restful风格的api接口):
一般是开发定义的,没有特定规定,一般都是约定俗成的。
- 200 OK
- 201 CREATED
- 通过put或post创建资源成功
- 204 NO CONTENT
- 资源修改成功,但是没有返回内容
- 常用于delete操作的返回
- 301 永久重定向
- 302 临时重定向
- 401 Unauthorized
- 没有权限
- 典型:用户没有登录,没有获得对应的access token而直接访问某资源
- 403 Forbidden
- 禁止访问
- 典型:虽然已经登录,但是需要更高的权限才能操作(删除/更新)资源
- 405 METHOD NOT ALLOWED
- 方法不允许
- 典型:比如某方法不允许post请求,但是你发起了post请求