Когда HTTP POST перенаправляется в GET, что происходит с телом POST? - PullRequest
0 голосов
/ 15 февраля 2011

Согласно моему предыдущему вопросу , мне нужно перенаправить HTTP-запрос POST на другой сервер.Я считаю, что это можно сделать с помощью заголовков HTTP-ответов от php, но я понимаю, что запрос POST станет запросом GET.Мой вопрос: что происходит с телом HTTP-запроса?это отброшено, или это будет преобразовано, чтобы быть частью URL запроса GET запроса?

то есть, если POST сделан к http://mysite.com/handler.php, и я перенаправляю к http://othersite.com/handler.php, это автоматически станет http://othersite.com/handler.php?param1=hello&param2=world

Ответы [ 2 ]

3 голосов
/ 15 февраля 2011

Данные POST исчезают.Если сценарий перенаправления не предпримет шаги для вставки данных POST в URL-адрес GET или в cookie-файл, данные будут утеряны и ушли.

Это отчасти задумано.Большинство браузеров ограничивают длину URL, и POST фактически не имеют ограничений на размер POST-данных, поэтому вы не хотели бы, чтобы загруженный вами файл размером 500 мегабайт добавлялся в строку запроса URL-адреса GET.

0 голосов
/ 15 февраля 2011

Если вы используете CURL для перенаправления такого запроса, он рассматривается как отдельный новый HTTP-запрос, который вообще не связан с исходным. Передаются только те данные, которые вы явно передаете в строке запроса.

...