Restful接口设计

Rest简述

REST(Representational State Transfer)描述了一个架构样式的网络系统,比如web应用程序。它首次出现2000年Roy Fielding的博士论文中,他是HTTP规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

Restful简述

对应的中文是rest式的;Restful web service是一种常见的rest的应用,是遵守了rest风格的web服务;rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构)。

Restful特性
普通架构

每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save。如:

http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
http://127.0.0.1/user/save   POST 新增用户
Restful架构
HTTP方法资源操作幂等性是否安全
GET查询
POST新增
PUT修改
DELETE删除

幂等性:多次访问,结果资源状态是否相同
安全:访问是否会变更服务器资源状态

响应状态码
编码HTTP方法响应体内容描述
200get/put资源数据操作成功
201post源数据创建成功
202post/put/delete请求已接受
204delete/put请求已处理,无返回数据
301getlink连接资源已被移除
303getlink重定向
304get资源没有被修改
400get/post/put/delete错误提示消息参数错误(缺少,格式错误等)
401get/post/put/delete错误提示消息未授权
403get/post/put/delete错误提示消息访问受限、授权过期
404get/post/put/delete错误提示消息资源、服务未找到
405get/post/put/delete错误提示消息不允许的HTTP方法
409get/post/put/delete错误提示消息资源冲突的数据类型或媒体类型
415get/post/put/delete错误提示消息不支持的数据类型或媒体类型
429get/post/put/delete错误提示消息请求过多被限制
500get/post/put/delete错误提示消息系统错误
501get/post/put/delete错误提示消息接口未实现
安全机制设计方案
单向加密

理论上,从明文加密到密文后,不可反向解密的。
可以从迭代和加盐的方式尽可能保证加密数据不可反向解密。

传递敏感数据的时候使用。如:密码
在金融相关交易中,用户密码是敏感数据,其它数据是非敏感数据。所有的金融相关的应用中,客户端都有一个独立的密码输入控件。这个控件就是做单向加密的。

使用单向加密的时候,传递的数据只有密文,没有明文,也没有密钥。

双向加密

是可以实现加密和解密双向运算的算法。需要通过密钥实现加密、解密计算的。

密钥种类:公钥、私钥。

  • 公钥:可以对外公开的,就是可以在网络中传递的。
  • 私钥:必须保密,绝对不会对外暴露的。

在传递安全数据的时候使用。所谓安全数据,就是不可篡改的数据。如:金融交易中的收款人卡号,转账的金额,货币种类等。

使用双向加密的时候,传递的有明文,密文,公钥。

1. 对称加密

只有一个密钥,就是公钥

2. 非对称加密

有两个密钥,公钥和私钥。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值