PHP是一种非常流行的编程语言,被广泛应用于Web开发中。其中,curl是PHP提供的一个强大的工具库,可以用来创建HTTP请求并获取响应。在使用curl发送HTTP请求时,设置HTTP头信息是非常重要的。本文将介绍如何使用PHP curl设置请求头。
一、设置请求头
首先,我们需要了解什么是请求头。HTTP请求由两部分组成:请求头和请求体。请求头中包含了如下信息:
1. Request line:请求行,包括请求方法、URL和HTTP协议版本号。
2. Request headers:请求头,包括各种附加信息,例如User-Agent、Accept-Encoding、Referer等。
3. Request body:请求体,包括POST请求中的数据。
设置请求头非常简单,在curl_setopt函数中使用CURLOPT_HTTPHEADER选项即可。该选项的值是一个数组,数组的每个元素都是一个键值对,表示一个请求头信息:
```
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$header = array(
"Content-Type: application/json",
"Authorization: Basic " . base64_encode("username:password")
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$response = curl_exec($ch);
curl_close($ch);
```
在上述代码中,我们设置了两个请求头:Content-Type和Authorization。Content-Type表示请求体的媒体类型是JSON格式。Authorization表示使用基本身份验证,用户名和密码经过Base64编码。
二、常用的请求头
HTTP请求头有很多,下面是一些常用的请求头及其作用:
1. User-Agent:客户端标识,表示浏览器或其他客户端软件的名称和版本号。
```
$header = array(
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
);
```
2. Referer:引荐页面地址,表示客户端从哪个页面链接到当前页面。
```
$header = array(
"Referer: http://www.example.com/"
);
```
3. Accept:可接受的响应类型,表示客户端可以接受的响应类型。
```
$header = array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
);
```
4. Accept-Encoding:可接受的压缩方式,表示客户端可以接受的响应压缩方式。
```
$header = array(
"Accept-Encoding: gzip, deflate, br"
);
```
5. Authorization:授权信息,表示客户端在请求中提供授权信息以便访问受保护的资源。
```
$header = array(
"Authorization: Basic " . base64_encode("username:password")
);
```
三、总结
在使用PHP curl发送HTTP请求时,设置请求头信息是非常重要的。我们可以使用curl_setopt函数中的CURLOPT_HTTPHEADER选项来设置请求头,该选项的值是一个键值对数组。常见的请求头包括User-Agent、Referer、Accept、Accept-Encoding和Authorization等。