怎么限制客户端频繁的调用接口
程序员文章站
2022-04-02 11:39:20
...
如何限制客户端频繁的调用接口? 在服务器端有个http接口,客户端通过发起post或get请求,调用该接口获取某些数据。为了限制客户端太频繁的发起请求,我要求至少60秒以上才能发起一次。现在我的做法是记录请求发起的时间,然后比较当次调用和上次调用的时间,
如何限制客户端频繁的调用接口?
在服务器端有个http接口,客户端通过发起post或get请求,调用该接口获取某些数据。为了限制客户端太频繁的发起请求,我要求至少60秒以上才能发起一次。现在我的做法是记录请求发起的时间,然后比较当次调用和上次调用的时间,小于60秒就返回某个状态码。请问除了这种方式,其他是否还有更简便的方式?例如设置服务器的Apache,求指导,谢谢。
------解决思路----------------------
没有比这个在简单的了
因为你不可能只对一个用户进行服务,如果限制了服务的频率(比如限制了 Apache 的响应)
那么假如有十个客户端的话,第十个客户端要在第一个客户端请求后的 10 分钟才会得到响应
这显然是不合情理的
------解决思路----------------------
访问接口,用memcache或者redis记录一个标识(如 ip或者用户id),设置过期时间,如60秒,下次访问时,判断是否有这个值,没有就允许访问,有,就说明还没过期,返回不能访问,内存记录应该快【本文来自鸿网互联 (http://www.68idc.cn)】些
------解决思路----------------------
如果非要实现功能的话,3楼说的是很好的解决办法
------解决思路----------------------
将用户访问接口事件写入日志,做相应的限制即可。
上一篇: php 防盗链功能实例代码
下一篇: RabbitMQ-镜像队列配置的介绍
推荐阅读
-
在混合开发框架模式中,简化客户端对Web API的频繁调用
-
如何限制客户端频繁的调用接口?
-
PHP怎么做一个接口,向安卓客户端提供数据,比如id、name之类的
-
请问一下,laravel框架,怎么做好接口api,调用频率及敏感请求参数的监控?
-
php怎么调用java的https方式的webservice接口。
-
怎么用PHP调用写好的c接口
-
请问一下,laravel框架,怎么做好接口api,调用频率及敏感请求参数的监控?
-
怎么保证对外暴露接口的安全性(调用频率限制)
-
php怎么调用java的https方式的webservice接口。
-
php怎么调用java的https方式的webservice接口。