php如何修改http请求头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何修改http请求头相关的知识,希望对你有一定的参考价值。

参考技术A <?php
$fp = fsockopen("test.com", 80, $errno, $errstr, 30);
if (!$fp)
echo "$errstr ($errno)<br />\n";
else
$out = "GET /2.php HTTP/1.1\r\n";
$out .= "Host: test.com\r\n";

$out .= "name:longqiqi\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp))
echo fgets($fp, 128);

fclose($fp);

?>
参考技术B header()

PHP的header()

header()函数用于发送原生的HTTP头。header()前不能有输出!

1.关于头信息。

  在HTTP协议中,HTTP消息为:客户端发送的request请求消息和服务器端发送的respose响应消息。

  请求消息:HTTP头(请求行+请求头)+HTTP体(请求体);  响应消息:HTTP头(状态行+响应头)+HTTP体(响应体)

  这HTTP头的头信息,不是HTML中的<head></head>部分,当然HTTP体的体内容也不是HTML中的<body></body>部分。

  头信息包括很多东西:详细见:www.cnblogs.com/aliang1992/p/6049578.html。

2.常见的header()函数例子:

  第一种:以“HTTP/”开头的,将会被用来计算出将要发送的HTTP状态码。

  例如:在Apache服务器上用PHP脚本处理不存在文件的请求,就会希望脚本响应正确的状态码。

<?php
    header("HTTP/1.0 404 Not Found");
?>

  第二种:以“Location:”开头的,它不仅吧报文发送给浏览器,而且还将返回给浏览器一个状态码。

  通俗点讲,就是自动跳转到 http://www.example.com/的URL地址。

<?php
    header("Location: http://www.example.com/");
    exit;
?>

  第三种: 以“Content-type:”开头的,告诉浏览器,服务器响应的对象类型。

  例如:application/xml  text/xml 等。决定浏览器讲义什么形式,什么编码读取这个文件。

  第四种:以“Content-Disposition:”,指定内容附件。

  服务器端想客户端浏览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt.jpg等,会直接在浏览器中显示,如果需要提示用户

  保存,就要利用Content-Disposition进行处理。

<?php
    header("Content-Disposition","attachment;filename=xxx.txt");
?<

 

以上是关于php如何修改http请求头的主要内容,如果未能解决你的问题,请参考以下文章

如何修改使用C#的请求的HTTP头

人回答如何修改http请求头中的origin吗

JavaScript获取并保存http请求头信息

PHP的header()

PHP 如何保存/打印 整个Http请求头和附带的post数据?

PHP-- 获取http请求头信息