PHP 发送的 HTTP headers
HTTP headers sent by PHP
我正在使用 CURL 和 file_get_contents 找出服务器请求页面和浏览器请求(有机)之间的基本区别。
我正在双向请求 PHPINFO 页面,发现它在不同情况下给出不同的输出。
例如,当我使用浏览器时,PHPINFO 显示如下:
_服务器["HTTP_CACHE_CONTROL"] no-cache
当我通过 PHP.
请求同一页面时,此信息丢失
我的 CURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/phpinfo.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_INTERFACE, $testIP);
$output = curl_exec($ch);
curl_close($ch);
我的file_get_contents:
$opts = array(
'socket' => array('bindto' => 'xxx.xx.xx.xx:0'),
'method' => 'GET',
'user_agent ' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0", // this doesn't work
'header' => array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8')
);
我的目标:
使 PHP 请求看起来与浏览器请求相同。
服务器检测您是 php 代码而非浏览器的一种可能方法是检查您的 cookie。使用 php 向服务器发送一次 curl 请求,然后将您获得的 cookie 注入下一个请求。
在这里检查:
http://docstore.mik.ua/orelly/webprog/pcook/ch11_04.htm
服务器可以了解您是机器人的另一种方式(php 代码)是检查 referer http header。
你可以在这里了解更多:
http://en.wikipedia.org/wiki/HTTP_referer
我正在使用 CURL 和 file_get_contents 找出服务器请求页面和浏览器请求(有机)之间的基本区别。
我正在双向请求 PHPINFO 页面,发现它在不同情况下给出不同的输出。
例如,当我使用浏览器时,PHPINFO 显示如下: _服务器["HTTP_CACHE_CONTROL"] no-cache 当我通过 PHP.
请求同一页面时,此信息丢失我的 CURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/phpinfo.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_INTERFACE, $testIP);
$output = curl_exec($ch);
curl_close($ch);
我的file_get_contents:
$opts = array(
'socket' => array('bindto' => 'xxx.xx.xx.xx:0'),
'method' => 'GET',
'user_agent ' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0", // this doesn't work
'header' => array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8')
);
我的目标: 使 PHP 请求看起来与浏览器请求相同。
服务器检测您是 php 代码而非浏览器的一种可能方法是检查您的 cookie。使用 php 向服务器发送一次 curl 请求,然后将您获得的 cookie 注入下一个请求。 在这里检查: http://docstore.mik.ua/orelly/webprog/pcook/ch11_04.htm 服务器可以了解您是机器人的另一种方式(php 代码)是检查 referer http header。 你可以在这里了解更多: http://en.wikipedia.org/wiki/HTTP_referer