-
缓存淘汰算法--LRU算法
2016-04-12 09:44 -
restful参数规则讨论
2016-04-11 21:25- 成功标识是 bool,errorcode 是 int
- 版本那个是的,服务端路由配置写死,不要动态
- 其实我们没校验时间戳,因为你说的问题....
-
restful参数规则讨论
2016-04-11 21:05####返回值
- HTTP Status Code 最好只是用来做特殊的场景,比如 401、403、404 等,建议统一返回 200,见下一条
- 一般正常情况都返回 [HTTP] 200,业务是否正常通过一个 bool 型 flag 进行判断,并带上 errorcode 作为业务错误返回码,正常业务返回 0
- 数据段使用 data 一个字段统一封装,方便客户端解析 (看不懂你上面 name="course12" 这个结构,不是 JSON 吧)
####合法性校验
- 客户端请求时使用私钥 app-secret、一个随机数 rand 、时间戳 timestamp 生成哈希出(可用 SHA1)一个签名 signature,然后在 HTTP 头里带上:
- 应用标识 app-key
- rand
- timestamp
- signature
- 服务端接收到这些信息后通过 app-key 查库找到 secret,并按照客户端的哈希算法计算签名是否正确,如果和发送过来的签名一致,就继续业务处理
- 服务端业务处理后,返回:
- rand
- timestamp
- signature
这三个参数给客户端,客户端再次按照一开始的逻辑计算 signature,然后和服务端带过来的 signature 做对比,如果一样就说明 OK
基本的校验思路就是这样,另外,一定要走 [HTTPS] 。
####版本
我个人偏向在 path 里面带版本号,一些 [RESTFul] 、HTTP API 最佳实践的文章里也推荐这个做法,好处是:
- 版本固化,客户端不宜出错
- 服务端版本分明,天然的路由控制
以上。
PS 记得给我感谢 😆
-
好书推荐——数学+物理+宇宙
2016-04-11 17:13@jingxuetao 我们这个场景只需要修改 NGINX 就行了,但是问题是代理过去后连接会被主动关闭,估计是那边的服务器验证了什么头,等晚上我摸索一下看看。