在PHP中查找服务器响应时间

时间:2016-02-01 13:20:56

标签: php curl server httpresponse

我使用以下代码查找服务器响应时间。

<?php
// check responsetime for a webbserver
function pingDomain($domain){
    $starttime = microtime(true);
    // supress error messages with @
    $file      = @fsockopen($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

    if (!$file){
        $status = -1;  // Site is down
    }
    else{
        fclose($file);
        $status = ($stoptime - $starttime) * 1000;
        $status = floor($status);
    }
    return $status;
}
?>

我使用此代码测试了一些网站,并返回服务器响应时间大约40到120毫秒。但是当我打开这些网站时,我花了大约2-4秒来获取第一个字节。

https://developers.google.com/speed/pagespeed/insights/计算的服务器响应时间也差不多2-4秒。那个代码怎么了?

1 个答案:

答案 0 :(得分:0)

您没有向服务器发出HTTP请求,而是打开套接字。您在此处测量的不是服务器响应时间,而是连接时间。

您可以尝试加载页面以获得总连接,响应和数据传输时间,例如:

file_get_contents("http://$domain/")

仅检索标题:

get_headers("http://$domain/")

或者您可以使用curl进行更多控制。