java - Web 服务器中的速率限制
问题描述
Web 服务器如何实现速率限制,例如,来自特定客户端/用户的速率限制?
怀疑是,服务器必须首先“获取”请求,如果达到阈值,则拒绝。在这个过程中,是不是服务器在使用它的资源。
例如:
在服务器中,我们可能有这样的逻辑(假设是套接字编程)。
void acceptConnection() {
while(true) {
int i = accept();
// rest of logic
}
}
我的疑问由此开始:服务器将在套接字/端口上进行侦听,因此即使它可能拒绝客户端,但服务器仍在侦听虚假呼叫,这难道不也有助于 DOS 吗?例如,服务器在拒绝假呼叫之前不执行 accept() 吗?所以在某种程度上,一部分代码正在执行?
解决方案
推荐阅读
- python - 我如何计算提到的 X 的数量?
- c++ - 传递模板以供以后在其他结构/类上下文中使用
- azure - 在 DeployIfNotExist 天蓝色策略中指定托管标识的位置
- c++ - 打包类的内存布局+继承
- django - 如何在django过滤查询中使用大于和小于或等于
- javascript - 从 JSON 数组中获取平均值
- python - 带有身份验证访问令牌的 python 请求
- c# - 将 UINT64 编码为浮点数
- java - 你能给我这个由我制作的新选择排序算法的时间近似值吗(如 n^2 , n*2 , nlogn )
- javascript - Angular - 在本地文本文件中保存 blob?