2021年12月PHP面试题总结
共 3031字,需浏览 7分钟
·
2021-12-09 22:33
01
为什么要跨域?
URL 结果 原因
http://store.company.com/dir2/other.html 同源 只有路径不同
http://store.company.com/dir/inner/another.html 同源 只有路径不同
https://store.company.com/secure.html 失败 协议不同
http://store.company.com:81/dir/etc.html 失败 端口不同 ( http:// 默认端口是80)
http://news.company.com/dir/other.html 失败 主机不同
02
Socket为什么需要心跳?
03
微信支付回调失败该如何处理?
他问的是已经支付成功后,但是回调失败了。自己可以创建定时任务在每天的凌晨执行,去微信那边对账,然后更新数据库订单状态。
04
Mysql索引优化使用like时用%开头的,如何提高性能?
https://www.cnblogs.com/mqfs/p/13097229.html
05
跨域的实现原理是什么?
https://www.cnblogs.com/fundebug/p/10329202.html
06
Nginx负载均衡时如何按时间段设置?
https://blog.csdn.net/jasonware/article/details/75044944
07
秒杀活动中如何限制超买?
https://blog.csdn.net/mu_rain/article/details/80249010
08
https://blog.csdn.net/yyqhwr/article/details/106960605
09
分表时,如何在两张表中查询数据? 不用关联表的情况。Union 和 distinct的区别是什么?
参考这个 https://bbs.csdn.net/topics/90484500
从用途上讲:它们都具有去重的效果
从效率上讲:distinct通常不建议使用,效率较低;union all 和union 而言,union all效率更高;原因是:union 相当于多表查询出的数据进行去重然后再进行排序后返回,而union all是多表查询合并去重后就直接返回
从单表还是多表上讲:
单表上有重复记录只能使用distinct,多表查询建议用union all
10
调用区块链接口的安全措施,有那些实现方法?
使用MD5实现对接口加签,目的是为了防止篡改数据。
基于网关实现黑明单与白名单拦截
可以使用rsa非对称加密 公钥和私钥互换
如果是开放接口的话,可以采用oath2.0协议
使用Https协议加密传输,但是传输速度慢
对一些特殊字符实现过滤 防止xss、sql注入的攻击
定期使用第三方安全扫描插件
接口采用dto、do实现参数转化 ,达到敏感信息脱敏效果
使用token+图形验证码方法实现防止模拟请求
使用对ip访问实现接口的限流,对短时间内同一个请求(ip)一直访问接口 进行限制。
11
对于特定的IP访问的情况,限制IP访问 限制同一IP在单位时间内的访问次数 上级服务器,提高吞吐能力
一往期精彩回顾一