php设置HTTP头信息及HTTP头信息常见用法
通过设置头信息,可以来完成许多功能。比如,设置内容类型、重定向、允许跨域请求等等。
设置HTTP头语法
在php中设置响应头、请求头信息非常的简单,语法如下:
header(string $stri)
常见应用
下面来介绍几种非常常见的头信息用法。
设置文本类型
相信大家肯定非常熟悉下面的一行代码:
header("Content-Type:text/html;charset=utf8")
Content-Type即表示文本类型。常见的文本类型有:
- text/html : HTML格式
- text/plain :纯文本格式
- text/xml : XML格式
- image/gif :gif图片格式
- image/jpeg :jpg图片格式
- image/png:png图片格式
重定向
重定向在我们平时用的也是非常多的,常见的场景有:
- 当服务端发送错误时,可以重定向到错误页面;
- 当检测当前浏览器是移动端时,跳转到m.xxx.xx;
- 从http协议跳转到https协议
在http中,重定向又分为两种,分别为301永久重定向以及302临时重定向。下面分别演示两种重定向的代码:
// 301
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.baidu.com/');
// 302
header('Location: https://www.baidu.com/');
跨域资源共享
默认情况下,XHR对象只能访问同域资源。我们可以通过设置响应头信息来允许跨域请求。
下面展示三种情况下的允许跨域请求
允许所有域名访问
header('Access-Control-Allow-Origin:*');
允许单个域名访问
header('Access-Control-Allow-Origin:http://www.baidu.com');
允许多个域名访问
$allowOrigin = [
'http://demo.com',
'http://www.demo.com',
'http://learnjs.com'
];
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
if (in_array($origin, $allowOrigin)) {
header("Access-Control-Allow-Origin:$origin");
}
执行下载请求
这里直接贴代码了
<?php
$file = './20101220130509576539.jpg';
header("Content-type:image/jpg");
header("Content-Disposition:attachment;filename=$file");
header("Content-Length:".filesize($file));
readfile($file);