应用场景
设置响应文件类型
PHP 中 header 函数专门用于设置响应头
像header('Content-Type: text/css');
HTTP MIME type 指的就是 像
text/css
text/html
text/plain
applcation/javascript
案例1:自身简单设置文件类型
<?php // PHP 中 header 函数专门用于设置响应头 header('Content-Type: text/html; charset=GBK'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>这是一个网页内容</title> </head> <body> <h1>这是一个网页内容</h1> </body> </html>
案例2:设置外链php的文件类型
↓
在index.html中,外链style.css style.php(设置文件类型为css) script.php(设置文件类型为javascript)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- 外链.css --> <link rel="stylesheet" href="style.css"> <!-- 外链.php --> <link rel="stylesheet" href="style.php"> </head> <body> <script src="script.php"></script> </body> </html>
style.css
body { background-color: hotpink; }
style.php
<?php // 通过 HTTP 响应头告诉客户端我们给你的内容是 CSS 代码 header('Content-Type: text/css'); ?> body { background-color: hotpink; }
script.php
<?php // 通过 HTTP 响应头告诉客户端我们给你的内容是 CSS 代码 header('Content-Type: application/javascript'); ?> alert(1);
重定向(跳转到其他网页)
这里是在 响应头中添加一个 location 的头信息
像header('Location: 01-content-type.php');
注意:
- 客户端浏览器在接收到这个头信息过后会自动跳转到 指定的地址
- 切记不能循环重定向
案例:
<?php // 这里是在 响应头中添加一个 location 的头信息 // header('Location: 01-content-type.php'); // 客户端浏览器在接收到这个头信息过后会自动跳转到 指定的地址 // 切记不能循环重定向 header('Location: 03-location2.php');
<?php header('Location: https://www.baidu.com');
下载文件
案例:
download.php
<a href="a.php">下载</a>
a.php
<?php // 让文件下载 header('Content-Type: application/octet-stream'); // 设置默认下载文件名 header('Content-Disposition: attachment; filename=demo.txt'); ?> 要下载的文本, 最终将本文件转化为txt形式
图片防盗链
通过判断请求来源 Referer 是否为本网站从而区分是否是合法请求
详细内容可参考这篇文章