发送HTTP请求并等待30秒

时间:2017-03-28 16:53:00

标签: javascript php request

我想知道如何向网站发送HTTP请求并使连接保持30秒,然后将其终止。 用PHP或Javascript可以吗?

例如: 1.脚本向stackoverflow发送请求 2.连接将保持30秒 3.到期后,连接将被关闭。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用fsockopen()手动打开连接,这样您就可以控制发送请求和关闭连接的时间。

$conn = fsockopen("stackoverflow.com", 80);
$request = "GET / HTTP/1.1\r\n" +
    "Host: stackoverflow.com\r\n" + 
    "Connection: keep-alive\r\n\r\n";
fputs($conn, $request);
$response = fgets($conn);
sleep(30);
close($conn);

Connection: keep-alive告诉服务器保持连接打开,直到客户端关闭它(这实际上是HTTP / 1.1中的默认值,但明确发送它没有坏处。)

但是,大多数Web服务器都有一个非活动超时,会关闭空闲的连接。根据{{​​3}},在Apache httpd 1.3和2.0中默认为15秒,在httpd 2.2中默认为5秒。因此,上述代码很可能无效。您必须每隔几秒钟继续发送新请求,以防止服务器关闭连接。