HTTP Sign 是一个RESTful API 签名认证项目。 该项目将解决HTTP通信中的如下问题:
防止重放攻击
防止中途篡改数据
保证请求服务幂等
从而,尽可能地让 HTTP 通信接近安全。
首字母小写,如果名称由多个单词组成,每个单词的首字母要大写
英文缩写词一律小写
只能由 [A~Z]、[a~z]、[0~9] 以及字符”-“、”_”、”.” 组成参数名
不能以数字开头
不允许出现中文及拼音命名
字典升序排列 如同在字典中排列单词一样排序,按照字母表递增顺序排列,参与比较的两个单词,若它们的第一个字母相同,就比较第二个字母,依此类推. 例如: zhong zhang zheng zhen, 做字典升序排列后的结果是 zhang zhen zheng zhong.
幂等性 接口在设计上可以被完全相同的URL重复调用多次,而最终得到的结果是一致的.
请求端的当前时间与服务器的当前时间之差的绝对值不能大于10分钟,否则拒绝处理. 也就是说,请求端的时间不能比服务器时间快10分钟或慢10分钟,否则,服务器不受理.
服务地址 接口按照功能划分成了不同的功能模块,每个模块使用不同的域名或上下文访问,具体域名或上下文请参考各个接口的文档.
通信协议 所有接口均采用HTTPS通信.
请求方法 支持 [GET,POST,PUT,DELETE,PATCH,HEAD,OPTIONS].
字符编码 在无特别说明情况下,均使用UTF-8编码.
API请求结构
服务端将从 QueryString 获得这些参数。
用户在HTTP请求中增加Authorization的Header来包含签名(Signature)信息,表明这个消息已被签名,认证是否通过,服务端说了算。
Authorization