zoukankan      html  css  js  c++  java
  • 客户端通过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生成签名,结果忽略大小写。
  • 相关阅读:
    转:PCIe基础知识
    转:HDMI介绍与流程
    Java EJB JBoss
    冒泡排序
    多线程
    快排
    Talk is cheap,show me the code
    oracle union
    Oracle 【to_number】【instr】
    DB 【ACID】
  • 原文地址:https://www.cnblogs.com/inside/p/6860597.html
Copyright © 2011-2022 走看看