簡體   English   中英

將HTTP POST重定向到GET時,POST正文會發生什么?

[英]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&param2=world

POST數據消失。 除非重定向腳本采取了將POST數據推送到GET的URL或cookie中的步驟,否則數據將失效。

這是設計使然。 大多數瀏覽器都會限制URL的長度,而POST實際上沒有限制要發布的數據的大小,因此您不希望剛上傳的500 MB文件附加到GET URL的查詢行中。

如果您使用CURL重定向這樣的請求,則它將被視為與原始請求完全不相關的獨特的新HTTP請求。 傳遞的唯一數據是您在查詢字符串中顯式傳遞的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM