Heim  >  Artikel  >  Backend-Entwicklung  >  发起http请求后 network获取资源问题

发起http请求后 network获取资源问题

WBOY
WBOYOriginal
2016-06-06 20:29:131926Durchsuche

<code>发起http请求后   network会显示各类加载的资源,php有什么办法获取某一type的name   size等信息吗?</code>

发起http请求后   network获取资源问题

用curl HEAD协议可行吗?

回复内容:

<code>发起http请求后   network会显示各类加载的资源,php有什么办法获取某一type的name   size等信息吗?</code>

发起http请求后   network获取资源问题

用curl HEAD协议可行吗?

描述不是很清楚,你是希望:

  1. 服务器端主动去发起一个请求去拿信息? => 可行

  2. 还是等客户端网页加载完成之后上报服务器浏览器获取到的信息? => 不可行

对于1,curl是可以的一个方案,不一定需要使用HEAD方式,GET,POST,DELETE,PUT方式你都可以拿到返回的HTTP头,只要你加上CURLOPT_HEADER参数

<code class="php"><?php $ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_URL, "http://sf.gg/");

$response = curl_exec($ch);

$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headerText = substr($response, 0, $headerSize);
$bodyText = substr($response, $headerSize);

echo $headerText; //即获取的http头,你会看到还有一次302跳转</code></code>

可以的,

<code>$info = curl_getinfo($ch);</code>

打印出$info后就有你需要的

$SERVER['PHPSELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$SERVER['GATEWAYINTERFACE'] #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$SERVER['SERVERNAME'] #当前运行脚本所在服务器主机的名称。
$SERVER['SERVERSOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。
$SERVER['SERVERPROTOCOL'] #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$SERVER['REQUESTMETHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$SERVER['QUERYSTRING'] #查询(query)的字符串。
$SERVER['DOCUMENTROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$SERVER['HTTPACCEPT'] #当前请求的 Accept: 头部的内容。
$SERVER['HTTPACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
$SERVER['HTTPACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
$SERVER['HTTPACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如:“en”。
$SERVER['HTTPCONNECTION'] #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$SERVER['HTTPHOST'] #当前请求的 Host: 头部的内容。
$SERVER['HTTPREFERER'] #链接到当前页面的前一页面的 URL 地址。
$SERVER['HTTPUSERAGENT'] #当前请求的 UserAgent: 头部的内容。
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off
$SERVER['REMOTEADDR'] #正在浏览当前页面用户的 IP 地址。
$SERVER['REMOTEHOST'] #正在浏览当前页面用户的主机名。
$SERVER['REMOTEPORT'] #用户连接到服务器时所使用的端口。
$SERVER['SCRIPTFILENAME'] #当前执行脚本的绝对路径名。
$SERVER['SERVERADMIN'] #管理员信息
$SERVER['SERVERPORT'] #服务器所使用的端口
$SERVER['SERVERSIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$SERVER['PATHTRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$SERVER['SCRIPTNAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$SERVER['REQUESTURI'] #访问此页面所需的 URI。例如,“/index.html”。
$SERVER['PHPAUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$SERVER['PHPAUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$SERVER['AUTHTYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn