一、介绍
header头是指在HTTP响应或请求中添加的一些元素,这些元素可以在响应和请求之间传递信息。在PHP中,可以通过header()函数来设置和获取header头。
二、常用header头
2.1 指定HTTP状态码
使用header头可以返回不同的HTTP状态码,其中比较常用的状态码如下:
- 200 OK:表示成功响应请求,返回对应的资源;
- 301 Moved Permanently:请求的资源已经永久被移动到其他URL;
- 302 Found:请求的资源已经临时被移动到其他URL;
- 404 Not Found:请求的资源不存在;
- 500 Server Error:服务器内部错误。
通过header头可以设置对应的状态码,示例代码如下:
```
header("HTTP/1.1 404 Not Found");
```
2.2 设置字符编码
设置header头的charset属性可以指定返回的内容的字符编码类型,示例代码如下:
```
header("Content-type: text/html; charset=utf-8");
```
2.3 控制缓存
对于静态资源,可以设置header头控制缓存,可以在服务器端减少资源请求,提高页面性能。比如,设置控制缓存过期时间为一天,示例代码如下:
```
header("Cache-Control: max-age=86400");
```
2.4 跳转页面
设置header头的Location属性可以实现页面跳转,代码如下:
```
header("Location: http://www.example.com/");
```
2.5 设置响应类型
设置header头的Content-type属性可以指定返回类型,比如html、json等,示例如下:
```
header("Content-type: application/json");
```
2.6 下载文件
通过设置header头可以实现文件下载,代码如下:
```
header("Content-disposition: attachment; filename=file.mp3");
header("Content-type: application/octet-stream");
```
2.7 防止跨站脚本攻击
针对跨站脚本攻击,可以设置header头的X-XSS-Protection属性来防御此类攻击,示例代码如下:
```
header("X-XSS-Protection: 1; mode=block");
```
2.8 防止点击劫持攻击
针对点击劫持攻击,可以设置header头的X-Frame-Options属性来防御此类攻击,示例代码如下:
```
header("X-Frame-Options: DENY");
```
2.9 跨域资源共享(CORS)
使用header头可以控制跨域资源共享(CORS),示例代码如下:
```
header("Access-Control-Allow-Origin: http://www.example.com");
header("Access-Control-Allow-Headers: X-Requested-With, Content-type");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
```
2.10 设置cookie
通过设置header头的Set-Cookie属性可以设置cookie,示例代码如下:
```
header("Set-Cookie: name=value; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/");
```
三、总结
本文介绍了PHP中常用的header头,包括设置HTTP状态码、字符编码、缓存控制、页面跳转、响应类型、文件下载、防止跨站脚本攻击、点击劫持攻击、跨域资源共享和设置cookie等。掌握这些知识可以让我们更好地利用header头来控制HTTP响应和请求,提高网站的性能和安全性。