Что такое исходные данные

Я пытаюсь понять смысл исходных данных. На странице руководства PHP для $HTTP_RAW_POST_DATA просто указывается, что эта переменная содержит Raw POST data .

Когда эта переменная будет установлена ​​и в чем смысл исходных данных?

Я понимаю $_POST но полностью смущен $HTTP_RAW_POST_DATA

Solutions Collecting From Web of "Что такое исходные данные"

Запрос HTTP состоит из двух частей. Набор заголовков и тела.

Заголовки включают такие вещи, как запрашиваемый URL-адрес и кэширование управляющих помощников (например, «У меня есть версия этого со вчерашнего дня, только дайте мне новый, если есть изменения, ОК?»).

Тело может появляться или не отображаться в зависимости от типа запроса. Запросы POST имеют органы.

Тело может быть в любом формате, который нравится клиенту. Один из заголовков сообщает серверу, что такое формат.

Существует несколько форматов, используемых форматами HTML, а PHP знает, как их анализировать и помещать данные в $_POST .

Если данные находятся в другом формате, таком как JSON, или если данные не соответствуют причудам PHP (например, правила наличия [] в конце ключей с тем же именем), вы можете захотеть получить доступ к данным так что вы можете разобрать его самостоятельно.

Это необработанные данные POST.

$_POST можно сказать как и результат после разделения $HTTP_RAW_POST_DATA , php разбивает исходные данные и форматы сообщений так, как мы видим это в $_POST Например:

$HTTP_RAW_POST_DATA выглядит примерно так:

 key1=value1&key2=value2 

то $_POST будет выглядеть так:

 $_POST = array( "key1" => "value1", "key2" => "value2",); 

HTTP – это текстовый протокол, поэтому все данные передаются как строки. Когда вы работаете с $_POST – у вас уже есть переданные данные, обработанные для вас в форме массива. Это делается с помощью php автоматически до того, как элемент управления будет передан вашему скрипту.

Таким образом, в исходных данных сообщений есть данные, которые были переданы через сеть.

Вероятно, вы увидите данные a=1&b=2 , как видите в URL-адресах

Одна из вещей, которую вы можете сделать с протоколом http, – это выполнить запрос POST, который отправляет некоторый текст обратно на сервер.

$HTTP_RAW_POST_DATA будет содержать этот текст, независимо от того, что он говорит.

В большинстве случаев, когда мы выполняем запрос POST, мы добавим «текст контента» к отправляемому тексту. Это сообщает серверу, какой контент он имеет. В большинстве случаев в Интернете мы отправляем тип контента как «application / x-www-form-urlencoded».

Когда сервер получает запрос POST с этим маркером контента, сервер будет знать, чтобы попытаться превратить данные в массив $_POST чтобы «test = hello» стал:

 $_POST['test']='hello' 

$HTTP_RAW_POST_DATA содержит необработанные данные POST, например:

  • текст
  • JSON
  • XML
  • HTML

Как правило, вместо $HTTP_RAW_POST_DATA. следует использовать php://input $HTTP_RAW_POST_DATA. потому что эта функция была DEPRECATED с PHP 5.6.0. Опираясь на эту функцию, очень не рекомендуется.

Источник: php.net – $ HTTP_RAW_POST_DATA