对接口的一点理解

一、定义接口:

接口分为两种:一种是数据型接口,一种是应用型接口。

数据型接口:是比抽象类更抽象的某种“结构”,它不是类,但是跟类有一样的结构规范,规范我们接口要以什么格式进行定义,一般用于团队比较大,分支比较多的情况下才使用。

应用型接口:就是API数据对外访问的一个入口。

客户端需要什么样的数据,我们就提供相应的数据,并且配以相应的接口文档。

二、特点:

 1、接口的方法必须是公开的。

 2、接口的方法默认是抽象的,所以不在方法名前面加abstract。 

 3、接口可以定义常量,但不能定义成员属性,常量的定义和用法和类中常量一样。

 4、类可以实现多个接口(相当于把多个功能集于一身,如手机实现了小灵通、MP3、MP4的功能) 

 5、接口也可以继承接口。

三、概念:

接口是方法的抽象,如果不同的类有同样的方法,那么就应该考虑使用接口。 

(1)接口是一个行为的规范、协议。其实就是类和类之间的一种协定,一种约束
(2)C#不支持多继承,但是他把这个功能交给接口来实现。 
(3)类与类之间的系统资源调用方式不一样,导致他们之间的通信很困难,而接口可以屏蔽掉它们之间的差异,能使他们顺利通信。

(4)可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

四、接口安全方面处理:

我们当时是这么做的,使用HTTP的POST方式,对固定参数+附加参数进行数字签名,使用的是md5加密,比如:我想通过标题获取一个信息,在客户端使用 信息标题+日期+双方约定好的一个key通过md5加密生成一个签名(sign),然后作为参数传递到服务器端,服务器端使用同样的方法进行校验,如果接受过来的sign和我们通过算法算的值相同,证明是一个正常的接口请求,我们才会返回相应的接口数据。

、接口登陆注册使用对称加密: 

对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密在PHP加密算法中有很多种算法,你使用哪种加密的方式,你就用哪种解密方式。但是我感觉使用非对称加密更安全。

非对称加密:

非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一 个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

(1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。

(2) Alice的浏览器向银行的网站请求公钥。

(3) 银行将公钥发送给Alice。

(4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。

(5) Alice的浏览器将加密后的对称密钥发送给银行。

(6) 银行使用私钥解密得到Alice浏览器的对称密钥。

(7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。

六、优化方向:

1.少写代码,多用php自身能力

2.php内置函数的性能优劣

3.尽可能少用魔法函数

4.合理使用内存

5.尽量少的使用正则表达式

6.避免在循环内做运算

7.减少计算密集型业务

8.运行环境,文件储存,数据库,缓存,

网络:设置超时时间、将串行请求并行化(使用curl_multi_*(),使用swoole扩展








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值