[英]When an HTTP POST is redirected to GET, what happens to the body of the POST?
根據我之前的問題 ,我需要將HTTP POST請求重定向到其他服務器。 我相信可以使用php的HTTP響應標頭完成此操作,但我知道POST請求將成為GET請求。 我的問題是HTTP請求的主體會發生什么? 是將其丟棄還是將其轉換為GET請求的查詢網址的一部分?
即,如果對http://mysite.com/handler.php
進行POST,而我重定向到http://othersite.com/handler.php
它將自動變為http://othersite.com/handler.php?param1=hello¶m2=world
POST數據消失。 除非重定向腳本采取了將POST數據推送到GET的URL或cookie中的步驟,否則數據將失效。
這是設計使然。 大多數瀏覽器都會限制URL的長度,而POST實際上沒有限制要發布的數據的大小,因此您不希望剛上傳的500 MB文件附加到GET URL的查詢行中。
如果您使用CURL重定向這樣的請求,則它將被視為與原始請求完全不相關的獨特的新HTTP請求。 傳遞的唯一數據是您在查詢字符串中顯式傳遞的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.