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
含义是以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 这个参数的含义的主要内容,如果未能解决你的问题,请参考以下文章