api总结

1、http和https的区别

(1) http是超文本传输协议 信息是明文提交
https是具有安全性的ssl加密传输协议
(2)是完全不同的连接方式用的端口也不一样 http是80端口 https是443端口
(3)http的连接很简单是无状态的 可以用cookie解决http无状态的问题
(4)身份认证的网络协议 要比http协议安全
(5)在网络模式中 http工作于应用层 https工作于传输层 http无需证书 而https需要看申请证书

2、对接口安全方面的处理

(1)验签:使用http的post方式,对固定参数+附加参数进行数字签名,约定好一个key使用MD5加密生成一个签名(sign),然后作为参数传递到服务器端,服务器端使用同样的方法进行校验,如果接收过来的sign和我们通过算法算的值相同,证明是一个正常的接口请求,也就说明他具有访问接口的权力,可以通过访问

(2)访问限制:一个接口在固定的时间允许访问的次数。首先总次数是针对所有用户的,其次再精确到某一个用户在固定的时间内的访问次数限制。讲到了如何确定一个用户,比如在手机app端可以通过IP+手机设备码 在webajax使用的是IP+user-Agent(用户代理)+随机码来确定的

接口访问限制有4种实现方式:1、基于时间窗口 2、基于滑动时间窗口 3、令牌桶 4、漏桶 开发时我们是通过前两种方式实现的 第一种基于时间窗口 使用的是用户IP+机器码来限制接口 超过限制就拒绝访问 针对的是总时间进行的接口限制

而基于滑动时间窗口可以针对在总时间的某一个时间段内能够访问多少次 超过限制拒绝访问 具体到时间段访问 对于前一种来说这种方式比较精确,所以会经常用这种方式实现

(3)数据加密:对称加密和非对称加密

(1)对称加密和解密使用的是同样的密钥,但由于需要将密钥在网络传输,所以安全性不高。 比如des aes
(2)非对称加密使用了一对密钥,公钥和私钥,安全性高,但加密与解密速度慢。比如rsa(支付宝常用算法) ecc(椭圆曲线加密算法)
(3)优缺点
非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

3、接口优化方面
(1)使用nosql数据库(redis)做缓存 减少数据库读取 将数据缓存起来
(2)使用redis做接口限流 把热点数据缓存到redis
(3)目的:提升接口的响应速度

4、使用restful 风格接口特点
(1)每一个url代表1种资源 资源通常以复数表示
(2)资源地址的形式:客户端使用支持http动词GET、POST、PUT、DELETE、LINK、OPTIONS对服务端资源进行操作 GET得到资源列表 POST增加一个资源 PUT、PATCH(部分)修改一个资源 DELETE删除一个资源 OPTIONS 获取信息。关于资源哪些属性是客户端可以改变的
(3)资源的表现形式是XML或HTML 返回数据的格式要以json的形式返回(数据主体,当前调用的状态信息,当前调用的错误码(返回http状态码))
(4)客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必须的信息
(5)推荐使用https协议

5、会简单写一个接口文档
(1)接口说明
(2)定义调用接口的方式
(3)调用示例
(4)返回的数据的示例

6、接口版本管理
(1)使用版本号区分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值