我想知道如何向网站发送HTTP请求并使连接保持30秒,然后将其终止。 用PHP或Javascript可以吗?
例如: 1.脚本向stackoverflow发送请求 2.连接将保持30秒 3.到期后,连接将被关闭。
提前致谢。
答案 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秒。因此,上述代码很可能无效。您必须每隔几秒钟继续发送新请求,以防止服务器关闭连接。