客户端通过HTTP协议与服务端交换数据

 

客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述


发起请求

header

键值对中的key大小写不敏感

  • Accept: application/json

  • Content-Type:

    • x-www-form-urlencoded
    • form-data
    • application/json
  • X-CLIENT-ID: 客户端id

  • X-TIMESTAMP: 客户端unix时间戳

  • X-SIGN: 客户端签名(可选)

另外需要实现Cookie机制

method
  • 写请求使用POST
  • 读请求使用GET
body
  • GET 没有body
  • POST 根据Content-Type的不同来决定Body的格式

处理响应

header

键值对中的key大小写不敏感

  • Status:
    • 200 操作成功
    • 400 请求有问题;如:表单、客户端id、客户端时间戳验证失败等
    • 401 认证失败。
    • 403 无访问权限。
    • 404 请求的资源不存在。
    • 409 请求处理完成但因为业务规则限制或其他原因并未真正成功的响应
    • 500 服务器错误
    • 503 服务器维护中
body

JSON数据,因为Accept中只约定了application/json

{"code":系统代码(409响应时,提供一个唯一的系统代码),"msg":返回值说明,"payload":业务数据}

业务数据中凡是约定返回JSON数组的情况,无结果时返回空数组,禁止NULL

签名机制

  1. 用请求参数生成键值对,键值对为“参数名=参数值”;其中上传文件的参数值为文件内容sha1结果的小写形式。
  2. 所有键值对按照键自然排序,然后用“&”连接为内容字符串。
  3. 使用内容字符串生成待签名字符串,如“内容内容{应用ID}时间戳时间戳{应用密钥}”。

    注意:${}表示占位符。

  4. 待签名字符串用sha1生成签名,结果忽略大小写。
原文地址:https://www.cnblogs.com/inside/p/6860597.html