2014-09-03 2 views
0

상대 서버 쪽 리디렉션을 수행하는 부두 기반 Java 응용 프로그램이 있습니다.상대 서버 측 리디렉션이 프로토콜을 존중합니까?

상대 URL로 리디렉션 :

/page2.html

https를 통해 제공됩니다에서 리디렉션 것 페이지,하지만 리디렉션

https://someDomain.com/page1.html

가 리디렉션 http 응답으로 제공되는 끝

http://someDomain.com/page2.html

상대 URL을 사용할 수 있어야합니까? 프록시 서버가 재 작성 중입니다. 책임이 있습니까? 또는 서버 측 리디렉션에서 지원되지 않습니다.

답변

1

예, HTTP는 상대 URL로 리디렉션 할 수 있으며 리디렉션을 수행하는 URL과 동일한 프로토콜 (RFC 3986 Section 5)을 사용해야합니다. 방파제 또는 대리인이 확립 된 표준을 준수하지 않는 것과 다른 무언가를하고 있다면.

+0

상대 URL을 절대 URL로 다시 쓰는 Jetty가 나옵니다. 안전하게 전달된다는 것을 모르기 때문에로드 밸런서가 노드가 아닌 안전하게로드되고 URL이 절대 URL로 다시 쓰여집니다 -> http : // 구성표. 자세한 정보는 [여기] (http://osdir.com/ml/java.jetty.general/2002-06/msg00188.html), [src에서 절대 URL로 바뀌는 곳] (https : /github.com/eclipse/jetty.project/blob/1a0eb64a1fabccd6d4b2990e1a6864db6ac2019b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/MovedContextHandler.java#L113) –

+0

이 [단위 테스트] (https : //github.com/eclipse/jetty.project/blob/063ad177b510b238aa51396030870e7d9aef0b8e/tests/test-integration/src/test/java/org/eclipse/jetty/test/rfcs/RFC2616BaseTest.java#L1087). 요청이 상대적 리다이렉트 일 때의 절대 URI (나는 생각한다 ;-) –

+0

그리고 RFC - [여기는 매우 훌륭한 PSUEDOCODE] (http://tools.ietf.org/html/rfc3986#section-5.2.2)의 상대 URI가 가리키는 것을 해결하는 알고리즘을 제안하고, Jetty가 올바르게하고있는 것처럼 보인다. - 절대 URI로 해석하라. 그리고 여기 [RFC의 훌륭한 좋은 예] (http://tools.ietf.org/html/rfc3986#section-5.4)에서 샘플 상대 URL과 해결 방법을 보여줍니다. –