Usage of $HTTP_RAW_POST_DATA



我正在搜索此的确切定义,但我仍然找不到令人满意的定义。

我正在使用Nusoap Web服务,并且有一行,

$server->service($HTTP_RAW_POST_DATA);

$ http_raw_post_data的目的是什么?

根据我的研究,它是用于收集原始帖子数据,但我对答案不满意。原始帖子数据的确切含义是什么?

HTTP请求由两个部分组成。一组标头和一个身体。

标题包括请求的URL和缓存控制助手(例如"我有昨天的版本,只有在发生更改时才给我一个新的(。"(。

身体可能会根据请求的类型出现,也可能不会出现。帖子请求有尸体。

身体可以采用客户喜欢的任何格式。标题之一将告诉服务器的格式是什么。

HTML表单使用了几种格式,PHP知道如何解析这些格式并将数据放入$ _post中。

如果数据以另一种格式(例如JSON(,或者数据不符合PHP的怪癖(例如,在以相同名称的密钥末尾具有[]的规则(,那么您可能需要直接访问数据,因此您可以自己解析。这是原始的帖子数据。

  • $_POST包含编码的URL(application/www-url编码(变量,这些变量已发布到您的脚本上,并为您使用PHP解码。当您处理HTML表单数据时,您会使用此。

  • file_get_contents("php://input")-获取原始帖子数据,并且在编写API并需要XML/JSON/...输入时需要使用此数据>

  • $HTTP_RAW_POST_DATA-从理论上讲,它与上面相同,但取决于php.ini。并且不再在php 7

  • 中使用

http消息由一系列标题和一个车身组成(可以要求/可选/禁止根据标题(。

对于URL http://stackoverflow.com/questions/43519007/usage-of-http-raw-post-data,正文是用于生成您正在阅读的文档的HTML。

如果您提出了该请求,则没有请求主体。

如果您提出了邮政请求,那么会有。如果提交表格,它将使用可以使用enctype属性指定的格式之一对其进行编码。

通常,在PHP中,当您想使用该数据时,您将使用包含内容后包含内容的$_POST

原始身体是身体已经被解码。

大部分时间,当我们使用HTTP POST请求时,我们正在研究浏览器提交表单的结果。这将以标准方式格式化数据(是否要编码" Query-string"编码"或quot"多部分/form-data&quort"(,该数据编码一组键值对。PHP自动将任何格式的任何请求解析到超级全球阵列$_POST

但是,实际的HTTP请求主体只是一条文本,在某些情况下,我们想这样对待它。例如,SOAP请求使用XML文档作为邮政请求的正文。$HTTP_RAW_POST_DATA使您可以访问此文本 - 它是" RAW"因为尚未处理过,所以它只是作为字符串回馈给您。

值得注意的是,$HTTP_RAW_POST_DATA是访问此问题的的方法,而较新版本的PHP中的正确方法是使用file_get_contents('php://input');,其中php://input是代表相同原始数据的虚拟文件。

相关内容

  • 没有找到相关文章