2011-02-15 2 views
0

필자의 이전 question에 따르면 HTTP POST 요청을 다른 서버로 리디렉션해야합니다. PHP에서 HTTP 응답 헤더를 사용하여이 수행 할 수 있다고 생각하지만 POST 요청을 GET 요청이 될 이해합니다. 내 질문은 HTTP 요청 본문에 어떤 일이 발생합니까? 그것은 버려지거나 GET 요청의 쿼리 URL의 일부로 변환 될 것입니까? 포스트는 http://mysite.com/handler.php로 이루어지고, I가 자동 POST 데이터가 소멸 http://othersite.com/handler.php?param1=hello&param2=worldHTTP POST가 GET으로 리디렉션되면 POST의 본문은 어떻게됩니까?

답변

3

해질 것이다 http://othersite.com/handler.php 리디렉션 경우 즉

. 리디렉션 스크립트가 POST 데이터를 GET의 URL이나 쿠키로 푸시하는 단계를 수행하지 않는 한 데이터는 죽어서 사라집니다.

이것은 다소 의도적으로 설계된 것입니다. 대부분의 브라우저는 URL의 길이를 제한하며 POST는 게시되는 데이터의 크기에 제한이 없으므로 방금 업로드 한 500MB 파일을 GET URL의 쿼리 행에 추가하지 마십시오.

0

CURL을 사용하여 이러한 요청을 리디렉션하는 경우 원래 요청과 관련이없는 새롭고 새로운 HTTP 요청으로 간주됩니다. 전달되는 유일한 데이터는 쿼리 문자열에서 명시 적으로 전달하는 데이터입니다.

관련 문제