接口基础----请求及响应

接口是什么?-----接口相当于获取资源的通道

  解释:接口就是一个通道,前端传数据到后端,需要通道进行传输,后端校验、分析,然后返回响应,前端收到响应,判断响应内容,最后在前端显示;

  一个接口就相当于会去调用后端的一个函数,而函数将而返回值作为响应报文把他返回给客户端;

  相当于客户端,浏览器,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的
  • 404 NOT FOUND
    • 找不到资源或路径路径不存在
  • 500 INTERNAL SERVER ERROR
    • 服务器内部错误  
    • 最常见的原因是:服务器内部挂了  
    • 比如你传递参数中有些参数是空,而导致后台代码无法解析,出现异常而崩溃

次常用的响应码及含义:

  • restful 风格的api接口
  • Successful - 2xx: 成功类,行为被成功地接受、理解和采纳
  • 201 CREATED
    • 通过POST或PUT创建资源成功
  • 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格式数据
  • 前后端分离 开发模式
    • 是以json格式返回数据  
  • 前后端不分离 开发模式
    • 返回HTML的页面,需要后端和前端人员配合  
  • 204 没有响应体,主要看需求文档和开发心情

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!******* 

猜你喜欢

转载自www.cnblogs.com/shouhu/p/12132666.html