博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
客户端通过HTTP协议与服务端交换数据
阅读量:5159 次
发布时间:2019-06-13

本文共 821 字,大约阅读时间需要 2 分钟。

 
 

客户端(包括浏览器)通过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

你可能感兴趣的文章
本周总结
查看>>
关于“/”应用程序中的服务器错误 之解决方案
查看>>
php编译安装参数说明
查看>>
Windows推包脚本
查看>>
多表查询
查看>>
单表查询
查看>>
网络并发 数据库可能的面试题
查看>>
mysql 之多表查询
查看>>
MySQL之视图、触发器、事务、存储过程、函数
查看>>
Navicat工具、pymysql模块
查看>>
MySQL之索引原理与慢查询优化
查看>>
MySQL之锁、事务、优化、OLAP、OLTP
查看>>
MySQL之创建用户和授权
查看>>
学生选课系统
查看>>
高大上版解决粘包问题
查看>>
什么是粘包,如何解决?
查看>>
开启进程 守护进程
查看>>
操作系统 串行 并发 并行 阻塞 非阻塞
查看>>
互斥锁 僵尸进程与孤儿进程
查看>>
数据库设计(第一范式,第二范式,第三范式
查看>>