php 如何获取 客户端http header

Posted

tags:

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

<?php
$dir=$HTTP_GET_VARS["dir"]; //.......取得上个页面传递来的路径
$file=$HTTP_GET_VARS["file"]; //.......取得传递来的文件名
$url=parse_url($HTTP_REFERER); /*......取得前一页面的URL地址,并将其放入一个数组中*/
if($url[host]!=$HTTP_HOST)echo "要下载本软件请到<a href=http://www.df365.org>东方小屋</a>";exit; /*检查来源网站是不是自己的网站,如果不是,返回“要下载本……”*/
if(empty($dir))$dir="/"; //......如果路径名为空,则为指定根目录
if(empty($file))echo "未指定要下载的文件!";exit; /*如果文件名为空,返回“未指定……”*/
$rootdir="文件存放的根目录";//......你的下载路径根目录 
$realurl=$rootdir.$dir; //.......取得你的下载目录
chdir($realurl); //......将当前目录转到下载目录中
if(!file_exists($file))echo "对不起,此链接已经失效,请在下载页面上向我们报告,谢谢!";exit; //......测试文件是否存在
$filename=$file; 
//  发送文件头信息
header("Cache-control: private"); // fix for IE 
header("Content-Type: application/octet-stream"); 
header("Content-Length: ".filesize($filename)); 
header("Content-Disposition: attachment; filename=$filename"); 
$fp = fopen($filename, 'r'); // 以读取方式打开指定文件
fpassthru($fp); // ** CORRECT ** 以二进制方式读取文件
fclose($fp); // 关闭文件
?>

参考技术A

可以通过PHP的预定义变量来获取,如下:

<?php
print_r($_SERVER); // HTTP 相关参数,即为客户端的header请求信息
?>

也可以参考PHP手册:http://php.net/manual/zh/reserved.variables.server.php

希望可以帮到你

如何在烧瓶中获取http标头?

我是python的新手并使用Python Flask并生成REST API服务。

我想检查发送给客户端的授权标头。

但我无法找到获取HTTP标头的方法。

任何有关获取HTTP标头授权的帮助都表示赞赏。

答案
from flask import request
request.headers.get('your-header-name')

request.headers的行为就像一本字典,所以你也可以像任何字典一样得到你的标题:

request.headers['your-header-name']
另一答案

注意,方法之间的差异是,如果标头不存在

request.headers.get('your-header-name')

将返回None或没有异常,所以你可以使用它

if request.headers.get('your-header-name'):
    ....

但以下将抛出错误

if request.headers['your-header-name'] # KeyError: 'your-header-name'
    ....

你可以通过它来处理它

if 'your-header-name' in request.headers:
   customHeader = request.headers['your-header-name']
   ....

以上是关于php 如何获取 客户端http header的主要内容,如果未能解决你的问题,请参考以下文章

如何获取网页的header格式

如何在烧瓶中获取http标头?

php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?

如何在php中获取curl请求的请求头信息及相应头信息

java中如何设置HTTP协议的头信息(header)

PHP如何打印出curl 模块交互的 http 请求与响应 header?