Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么Web服务器会阻止ajax查询-DDoS?_Php_Ajax_Html_Ddos - Fatal编程技术网

Php 为什么Web服务器会阻止ajax查询-DDoS?

Php 为什么Web服务器会阻止ajax查询-DDoS?,php,ajax,html,ddos,Php,Ajax,Html,Ddos,我在一个HTML5Web应用程序上遇到了一个问题,在这个应用程序中,我每隔两秒钟就会通过ajax查询进行重复数据更新。前两到三个以175ms的速度通过,但在此之后,它们会减速到500ms,从那时起。托管公司发誓不是他们。我做了一个简单的测试-请参阅下面的测试脚本。这不是我的应用程序,因为此测试脚本具有相同的结果。我的问题是:这是主机服务节流,认为这是DDoS攻击,还是我可以做些什么来阻止这种节流,减缓ajax查询的速度? 索引文件: <!DOCTYPE html> <html&

我在一个HTML5Web应用程序上遇到了一个问题,在这个应用程序中,我每隔两秒钟就会通过ajax查询进行重复数据更新。前两到三个以175ms的速度通过,但在此之后,它们会减速到500ms,从那时起。托管公司发誓不是他们。我做了一个简单的测试-请参阅下面的测试脚本。这不是我的应用程序,因为此测试脚本具有相同的结果。我的问题是:这是主机服务节流,认为这是DDoS攻击,还是我可以做些什么来阻止这种节流,减缓ajax查询的速度?

索引文件:

<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        var count = 0;
        var my_timer = setInterval(function(){  
            $.ajax({url: "test.php", success: function(result){
                $("#div1").html(result);
            }});
            count = count + 1;
            if(count == 10) clearInterval(my_timer);
        },2000);
    });
});
</script>
</head>
<body>
<div id="div1">Let jQuery AJAX Change This Text</div>
<br>
<button>Get External Content</button>
</body>
</html>

$(文档).ready(函数(){
$(“按钮”)。单击(函数(){
var计数=0;
var my_timer=setInterval(函数(){
$.ajax({url:“test.php”,success:function(result){
$(“#div1”).html(结果);
}});
计数=计数+1;
如果(计数=10)清除间隔(我的计时器);
},2000);
});
});
让jQuery AJAX更改此文本

获取外部内容
php文件:

<?php
    echo date('h:i:s');
?>

[解决]在对这个问题进行大量研究之后。我想我终于找到了答案,或者至少找到了解决办法。显然,CentOS和/或Plesk Php正在阻塞。我解决这个问题的方法是在openSUSE 13.1上重新镜像服务器。在这个操作系统中,Ajax查询似乎可以正常工作。这只是一个猜测,但看起来PHP和/或CentOS软件更新机制也有缺陷。这些更新似乎不能很好地工作并产生问题。所以现在我不会去修理那些没有坏掉的东西


感谢评论员们的投入,因为这确实为我指明了正确的方向。

大多数web浏览器对同一站点上运行的并发请求数量都有限制。。。。每两秒钟就有一次,特别是当他们需要一段时间来处理时,他们可能会被浏览器排队——firebug或chrome developer tools等工具会向你展示这一点,你如何衡量“通过”的时间?我已经添加到javascript中(从interval函数的第一行开始,在成功处理程序中测量),并在我的服务器上测试了该脚本,但其平均速度为40ms。(使用当前的Chrome进行测试)它们不是并发的,而是串行的。同样在测试脚本中,单行数据命令并不十分繁重。这个应用在我拥有的另一个主机服务上工作。这就是为什么我把目标对准了托管公司。但是有解决办法吗?幽灵赌徒是的,我只是在使用Chrome控制台,看着网络流量通过。很容易看到查询以175ms ish(ping的速度)开始。但在3到5分钟的间隔后,它们会减速到500毫秒。这是非常一致的。下面是Chrome对暂停查询的描述:暂停0.680 ms DNS查找1.957 ms初始连接334.281 ms SSL 170.421 ms请求/响应时间请求发送0.107 候车小姐(TTFB)177.716 ms内容下载0.368 ms解释515.571 太太