2011-02-11 5 views
1

내 웹 서버 (www.myserver.com)로 리디렉션 된 페이지에 있었지만 요청은 GET이 아니라 POST였습니다.브라우저가 POST로 URL로 리디렉션 될 수 있습니까?

처음에는 "GET /"을 처리하기위한 경로 처리기가있어서 www.myserver.com에서 요청을 처리하지 못했습니다. POST 리다이렉션이 될 수 있다는 것을 깨달았을 때 "POST /"에 대한 라우트 핸들러를 만들었고 페이지가 제공되었습니다.

내가 틀렸다고 정정하면 브라우저가 POST로 URL로 리디렉션 될 수 있습니까?

답변

2

대답은 YES이지만 브라우저는 사용자에게 메시지를 표시합니다. 302는 GET 및 HEAD에는 허용되지 않지만 POST에는 307이 허용됩니다. 는 HTTP RFC에서 :

307 임시 리디렉션

요청 된 자원이 일시적으로 다른 URI에 을 상주합니다. 경우에 따라 리디렉션을 변경할 수 있으므로 클라이언트는 향후 요청에 대해 Request-URI를 계속 사용해야합니다 (SHOULD ). 이 응답은 Cache-Control 또는 Expires 헤더 필드로 표시되는 경우에만 캐시 가능입니다.

임시 URI는 응답의 위치 필드로 지정해야합니다. 요청 방법은 많은 이전 HTTP/1.1 사용자 에이전트 이후 HEAD, 새로운 URI (들)에 하이퍼 링크와 짧은 하이퍼 텍스트 주석을 포함하고 있어야 응답의 엔티티가 아닌 이상 는 는 307 개 상태를 이해하지 못하는 . 따라서 주에는 사용자에게 필요한 정보가 포함되어 있어야합니다. 은 새로운 URI에서 원래 요청을 반복해야합니다. 그것이 사용자가 확인되지 않는 한 이것은이 변경 될 수 있기 때문에

307 상태 코드가 또는 HEAD를 GET 이외의 요청에 응답 수신되면 사용자 에이전트는 자동으로 요청 을 리디렉션해서는 안 요청이 인 조건.

어떤 브라우저를 사용하셨습니까?

+0

Chrome을 사용하고있었습니다. – ajsie

0

페이지를 가리키는 <form> 태그가있는 페이지를 만든 다음 페이지가로드 될 때 Javascript를 사용하여 양식을 제출할 수 있습니다.

+0

하지만 폼에 대해서는 언급하지 않았지만 POST 리디렉션에 대해서는 언급하지 않았습니다. – ajsie

관련 문제