php curl中CURLOPT_HTTPHEADER 这个参数的含义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl中CURLOPT_HTTPHEADER 这个参数的含义相关的知识,希望对你有一定的参考价值。

RT php curl 中这个参数是起什么作用的

curl_setopt($ch,CURLOPT_HTTPHEADER,array( "Content-Type: application/x-www-form-urlencoded;charset=utf-8",
));表示什么意思

php curl中CURLOPT_HTTPHEADER 这个参数的含义是:CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组。Content-Type 表示后面的文档属于什么MIME类型。charset表示浏览器可接受的字符集。

HTTP头Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。

HTTP请求头的部分类型:

1、Accept:浏览器可接受的MIME类型。

2、Accept-Charset:浏览器可接受的字符集。

3、Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。

4、Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。

5、Content-Length:表示请求消息正文的长度。

6、Cookie:这是最重要的请求头信息之一。

扩展资料:

PHP中的CURL函数库(部分):

1、curl_setopt_array — 为cURL传输会话批量设置选项

2、curl_setopt — 设置一个cURL传输选项

3、curl_close — 关闭一个cURL会话

4、curl_copy_handle — 复制一个cURL句柄和它的所有选项

5、curl_errno — 返回最后一次的错误号

6、curl_error — 返回一个保护当前会话最近一次错误的字符串

7、curl_escape — 使用 URL 编码给定的字符串

在实际的使用当中,使用得最多的函数是curl_setopt — 设置一个cURL传输选项说明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄。option 表示的是需要设置的CURLOPT_XXX选项。

option的可选参数:

1、CURLOPT_BUFFERSIZE 每次获取的数据中读入缓存的大小,但是不保证这个值每次都会被填满。在cURL 7.10中被加入。

2、CURLOPT_CLOSEPOLICY 不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,还存在另外三个CURLCLOSEPOLICY_,但是cURL暂时还不支持。

3、CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为0,则无限等待。

参考资料来源:百度百科-http请求头

参考资料来源:百度百科-curl

参考技术A

含义是以CURL方式设置http的请求头。

Content-Type的目的表明请求的与实体对应的MIME类型。Content-Type的字面意思是内容的类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式,什么编码读取这个文件。

CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组。Content-Type 表示后面的文档属于什么MIME类型。charset表示浏览器可接受的字符集。

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯 。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

扩展资料:

http请求头类型:

1、Accept:浏览器可接受的MIME类型。

2、Accept-Charset:浏览器可接受的字符集。

3、Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。

4、Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。

5、Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。

参考资料来源:

百度百科-php curl

百度百科-http请求头

百度百科-curl

参考技术B

含义是以CURL方式设置http的请求头。

Content-Type的目的表明请求的与实体对应的MIME类型。Content-Type的字面意思是内容的类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式,什么编码读取这个文件。

在curl_setopt($ch,CURLOPT_HTTPHEADER,array())里面的 array( ) 数组中,除了存放Content-Type以外,还可以存放Accept-Charset、Content-Length、Host、Cookie等请求头有关的各种字符串形式的数据。

扩展资料:

注意事项

PHP中CURL方法curl_setopt()函数的一些参数,bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。 

下列选项的值将被作为长整形使用(在option参数中指定): 

CURLOPT_INFILESIZE : 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 

CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。

CURLOPT_HEADER : 如果你想把一个头包含在输出中,设置这个选项为一个非零值。 

CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。 

CURLOPT_NOBODY : 如果你不想在输出中包含body部分,设置这个选项为一个非零值。

CURLOPT_FAILONERROR : 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。

参考技术C 这条语句的目的是以CURL方式设置http的请求头,
此处Content-Type的目的表明请求的与实体对应的MIME类型。Content-Type的字面意思是内容的类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url。如果这句话不好理解的话,单独分析urlencoded这个单词,它是由“url”+ “encoded ” 两个部分组成 ,即“URL”+"编码",合起来的意思就是URL编码。charset=utf-8是支持的字符集。
在curl_setopt($ch,CURLOPT_HTTPHEADER,array())里面的 array( ) 数组中,除了存放Content-Type以外,还可以存放Accept-Charset、Content-Length、Host、Cookie等请求头有关的各种字符串形式的数据。
参考技术D 为了安全,我们的web服务主机往往不能上网。维护的时候,也是通过跳板机,ssh登录后去操作。

有时候我们的程序需要访问外网。比如需要调用外网其他程序的某个接口。这下该怎么办呢?

我们可以通过PHP的CURL函数的CURLOPT_HTTPHEADER来配置设置host访问。追问

配置host访问 能说个例子吗?还有 这个参数能设置什么样的值?array( "Content-Type: application/x-www-form-urlencoded;charset=utf-8",
这个是什么意思?

PHP中使用CURL

curl伪造IP和来源

client.php请求server.php

client.php

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/server.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘X-FORWARDED-FOR:8.8.8.8‘, ‘CLIENT-IP:8.8.8.8‘));  //构造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com/ ");   //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out = curl_exec($ch);
curl_close($ch);
?>

server.php

<?php
function getClientIp() {
    if (!empty($_SERVER["HTTP_CLIENT_IP"]))
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    else if (!empty($_SERVER["REMOTE_ADDR"]))
        $ip = $_SERVER["REMOTE_ADDR"];
    else
        $ip = "err";
    return $ip;
}

echo "IP: " . getClientIp() . "";//IP
echo "referer: " . $_SERVER["HTTP_REFERER"];//来源
?>

注:这个伪造建立在对方不对proxy ip还有remote_addr同时封禁的效果上。

以上是关于php curl中CURLOPT_HTTPHEADER 这个参数的含义的主要内容,如果未能解决你的问题,请参考以下文章

PHP中使用curl入门教程

php curl中CURLOPT_HTTPHEADER 这个参数的含义

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

PHP中使用CURL

无法在 Linux 上的 PHP 中启用 cURL 支持

在 php 中管理 curl 输出