接口是什么?-----接口相当于获取资源的通道
解释:接口就是一个通道,前端传数据到后端,需要通道进行传输,后端校验、分析,然后返回响应,前端收到响应,判断响应内容,最后在前端显示;
一个接口就相当于会去调用后端的一个函数,而函数将而返回值作为响应报文把他返回给客户端;
相当于客户端,浏览器,APP发送的请求;
一、请求
请求的过程一定是通过一个 url 去请求的
1.URL组成
例如某个 url 地址:
http://127.0.0.1:8088/docs/
格式:协议 + 域名或IP地址 + 请求路径
域名会被DNS服务器解析为IP地址
- 一个url地址就是一个接口,接口当中一般运用最多的就是 HTTP 和 HTTPS 协议,是一种超文本传输协议;
- url 域名的后面都是路径
- HTTP和HTTPS的区别:
- HTTPS是一个加密协议,经过一些算法加密,相比于HTTP更加安全;
- HTTP默认端口80
- HTTPS默认端口号443
2.请求结构
- 请求首行(请求行)
- 请求头(消息报头)
- 空一行
- 请求体(请求正文)
3.请求首行
请求首行包括:请求方法(get) + 请求地址 + 协议版本号(HTTP/1.1)
- 请求方法
- get
- 获取服务器资源(取回数据)
- 对应sql语句中的select
- 没有请求体
- 传参:请求参数(query string查询字符串)放在url中以?key1=value.........的形式
- 不要在处理敏感数据时使用,如:账号密码
- post
- 往往创建(新增)资源
- 对应 sql 语句中的 insert into
- 有请求体
- 请求参数

-
-
-
- text/plain文本传输为HTTP的报文体中是纯文本,没有任何格式和修饰,服务端就会拿走文本自己处理;
- Form这个是最常用的传递参数方式,HTML 中都有form标签与其对应,其本身采用Key-Value的方式传递参数;
- json格式比Form更加有效的地方是可以传送Object;
- File传输单个文件
- 根据Content-type不同,服务器去读取HTTP Body中参数的方式也不一样
- put
- 修改服务器的资源
- 对应sql语句总的update
- 有请求体、有参数
- delete
- 删除服务器的资源
- 对应sql语句总的delete from
- 有请求体、有参数
- 请求地址
- 协议版本号(HTTP/1.1)
4.请求头(消息报头)
User-Agent (有责儿。哎真特):(客户端类型)
cookie:
-
- 相当于身份信息,一般放在请求头
- 不会保存用户的非敏感信息
5.请求体(请求正文)
- get请求绝大多数没有请求体
- 主要作用携带请求参数
二、响应报文
响应报文是服务器发出的
1.请求结构
- 响应首行(状态行)
- 响应头(消息报头)
- 空一行
- 响应体(响应实体)
2、响应首行(状态行)
包括:

最常用的状态码及含义
- Successful- 2xx:成功类,行为被成功地接受、理解和采纳
- 200 OK
- 服务器成功返回用户请求的数据
- 往往为了简化处理
- POST创建 成功后应该返回201的
- 500 INTERNAL SERVER ERROR
- 服务器内部错误
- 最常见的原因是:服务器内部挂了
- 比如你传递参数中有些参数是空,而导致后台代码无法解析,出现异常而崩溃
次常用的响应码及含义
- restful 风格的api接口
- Successful - 2xx: 成功类,行为被成功地接受、理解和采纳
- 201 CREATED
- 204 NO CONTENT
- 资源修改成功,但是没有返回内容
- 常用于DELETE操作的返回
- Redirection. - 3xx:重定向类,为了完成请求,必须进一步执行的动作
- 301 永久重定向
- 302 临时重定向
- Client Error - 4xx: 客户端错误类,请求包含语法错误或者请求无法实现
- 401 UNAUTHORIZED
- 没有权限访问该资源
- 典型情况:用户没有登录,没有获得对应的access token而直接访问某资
- 403 FORBIDDEN
- 禁止访问
- 典型情况:虽然用户已登录,但是去更新/删除需要更高权限才能操作的资源
- 405 METHOD NOT ALLOWED
- 方法不允许
- 举例:比如某个资源不允许POST请求,但是你确发起了POST请求
3、响应头(消息报头)
- Content-Type(康泰的太婆)
- 代表:响应报文返回的数据类型/json格式、HTML格式页面报文
- set-Cookie
- 服务器将用户信息(session-id)放到Set-Cookie,浏览器拿到 set—cookie 然后将其放到浏览器的 Cookie 中保存
4、响应体(响应实体)
- 响应数据
- html页面或者json格式数据
- 前后端分离 开发模式
- 前后端不分离 开发模式
- 204 没有响应体,主要看需求文档和开发心情
接口基础----请求及响应
原文:https://www.cnblogs.com/shouhu/p/12132666.html