$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别

简介:

总是产生变量包含有原始的 POST 数据。否则,此变量仅在碰到未识别 MIME 类型的数据时产生。不过,访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。 

1:$POST我们常用的就不用介绍了吧


2:$GLOBALS['HTTP_RAW_POST_DATA']:


基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用$GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。


PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型,用Content-Type=text/xml 类型,提交一个xml文档内容给了php server,要怎么获得这个POST数据。 


由于PHP默认只识别application/x-www.form-urlencoded标准的数据类型,因此,对型如text/xml的内容无法解析为$_POST数组,故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。


3:php://input 也可以实现此这个功能:


php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input 不能用于 enctype="multipart/form-data"。


例子:

leyangjun.html

1
2
3
4
5
6
7
8
9
<form action= "leyangjun.php"  method= "post" >
 
<p>First name: <input type= "text"  name= "fname"  /></p>
 
<p>Last name: <input type= "text"  name= "lname"  /></p>
 
<input type= "submit"  value= "Submit"  />
 
</form>

leyangjun.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
echo  "<pre>" ;
print_r( $_POST );
 
echo  '<hr />' ;
 
$data  file_get_contents ( 'php://input' );   //都要解下码
echo  "<pre>" ;
print_r(urldecode( $data ));
 
echo  '<hr />' ;
 
echo  "<pre>" ;
print_r( $GLOBALS [ 'HTTP_RAW_POST_DATA' ]);



测试结果:

wKioL1UBTxbilf2RAAFj527yvTQ478.jpg





End




   本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1619751,如需转载请自行联系原作者








相关文章
|
6天前
|
PHP Android开发
android通过http上传文件,服务器端用php写(原创)
android通过http上传文件,服务器端用php写(原创)
18 4
|
6天前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
52 0
一起深入了解http和https的区别
|
4天前
|
JSON Java 数据安全/隐私保护
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
|
6天前
|
网络协议 安全 数据安全/隐私保护
Socks5代理和HTTP代理的区别在哪里?
Socks5和HTTP代理是两种IP代理方式,分别基于Socks5及HTTP协议。Socks5支持TCP/UDP,适合P2P、游戏和流媒体,提供传输层身份验证。HTTP代理仅支持HTTP,适用于Web浏览控制和内容过滤。选择代理应根据实际需求,如需高速低延迟选Socks5,需访问控制选HTTP。
|
5天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
15 1
|
5天前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
14 0
|
6天前
|
网络协议 网络安全 程序员
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
|
6天前
|
安全 网络协议 网络安全
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
HTTP和HTTPS是互联网主要的两大协议,HTTP是基础的简单请求-响应协议,常用于TCP上,但数据传输不安全。HTTPS是HTTP的安全版本,添加了SSL层进行加密和身份验证,提供更高的安全性,用于保护数据和验证网站真实性。HTTPS需CA证书,可能产生费用,并使用443端口而非HTTP的80端口。
|
6天前
|
网络协议 安全 数据安全/隐私保护
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
SOCKS5和HTTP是两种代理协议,前者是通用型,支持多种网络流量,提供身份验证、IPv6支持及UDP兼容性,更适合实时数据传输。HTTP代理专用于HTTP协议,适用于Web资源请求。SOCKS5在传输方式、功能、兼容性和安全性上更胜一筹,而HTTP代理则在处理HTTP请求时更专业。选择代理协议应根据需求和应用场景,考虑服务的稳定性和安全性。付费代理如kookeey全球代理,支持双协议,速度快且可扩展性强,是可靠的选择。
|
6天前
|
安全 网络协议 网络安全
Socks5代理与HTTP代理的区别与优劣
在互联网时代,隐私和安全至关重要,代理服务器如socks5和HTTP代理成为保护个人信息的工具。socks5代理支持多种网络流量和UDP协议,更具灵活性和通用性,但设置复杂;HTTP代理则更常见、易用,适合仅处理HTTP流量的场景,但限制较多。选择哪种代理取决于具体需求和应用场景。