How to send and receive headers via PHP

不打扰是莪最后的温柔 提交于 2019-12-13 05:24:04

问题


I'd like to study how headers are sent and received.

I know about PHP's header function and think I can just look at an actual request header (e.g. using Firebug) and make identical requests to a server (including spoofing the User-Agent). Is this correct?

The other problem is how do I get the header responses back? I want to analyze the response.

Thanks.

EDIT:

@Tatu, here's the code I ran:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.google.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/8.1.0.0 Safari/540.0');

$result = curl_exec($ch);
curl_close($ch);

header('Content-type: text/plain');
echo($result);

回答1:


You might want to take a look at cURL which will allow you to make requests and set and inspect headers. PHP's header only sets headers for the current page, you cannot use that to spoof your user agent – these are headers set by the server and as such have no such significance.

The basic structure of a cURL request with custom headers might be something like this:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Your user agent");

$result = curl_exec($ch);
curl_close($ch);

The beginning of $result will now contain the headers received from the server.




回答2:


If you want to send headers yourself, without using cURL, check out sockets in PHP.

http://php.net/sockets



来源:https://stackoverflow.com/questions/4056824/how-to-send-and-receive-headers-via-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!