libcurl库中curl_getinfo()返回值详解

阅读更多
array
  'url' => 'http://tc-apptest-zhangmen01.tc.google.com:2580/index.php?sex=male' (length=65)
  'content_type' => 'text/html' (length=9)
  'http_code' => 302
  'header_size' => 169
  'request_size' => 256
  'filetime' => -1
  'ssl_verify_result' => 0
  'redirect_count' => 0
  'total_time' => 0.005
  'namelookup_time' => 0.001
  'connect_time' => 0.003
  'pretransfer_time' => 0.003
  'size_upload' => 0
  'size_download' => 211
  'speed_download' => 42200
  'speed_upload' => 0
  'download_content_length' => 211
  'upload_content_length' => 0
  'starttransfer_time' => 0.005
  'redirect_time' => 0





以上是我程序中一条curl_getinfo()语句得出来的信息:

下面分析各个元素表示的信息:
url是这次curl连接的地址,http_code是302,表示这个url地址表示的文件中存在重定向,而redirect_count=0和redirect_time=0表示这次curl连接没有跟踪重定向,这是curl默认的参数设置,如果设置一下:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

那么curl_getinfo()的信息就会变成这样:

array
  'url' => 'http://tc-apptest-zhangmen01.tc.google.com:2580/phpinfo.php' (length=58)
  'content_type' => 'text/html' (length=9)
  'http_code' => 200
  'header_size' => 319
  'request_size' => 458
  'filetime' => -1
  'ssl_verify_result' => 0
  'redirect_count' => 1
  'total_time' => 0.018
  'namelookup_time' => 0
  'connect_time' => 0
  'pretransfer_time' => 0
  'size_upload' => 0
  'size_download' => 39333
  'speed_download' => 2185166
  'speed_upload' => 0
  'download_content_length' => 211
  'upload_content_length' => 0
  'starttransfer_time' => 0.002
  'redirect_time' => 0.008


上面的url是从上一个url重定向到的新的url,这个url没有在重定向,因此它的http_code是200,而redirect_count和redirect_time都不再是0.

另外connect_time是建立连接的时间,在我测试了好几次之后发现connect_time总是等于pretransfer_time(这个时间是从一开始到开始传输数据的时间),但是不能就这么判定两者永远相等。那么两者时间会差在哪里呢?因为建立连接后就开始传输数据,因此我估计两者在截至的时间上相同,如果不同的话,估计是在计算时间的开始点上。pretransfer_time是从开始到传输数据,起点是在最开始,而connect_time的定义是连接花费时间,起点是开始连接。想了很长时间也是不明白,请求明白人指点。

nameloopup time是从开始到名字解析花费的时间。

size_upload为什么总是0呢?即使我使用了POST方法传输了数据也还是0,什么情况下才不是0呢?

size_download是页面的content-lenght值,而speed_download是size_download/total_time的出来的。

你可能感兴趣的:(PHP,Google,HTML)