0
我有一個碼頭基於Java的應用程序,做了相對服務器端重定向:相關服務器端重定向是否尊重協議?
例如重定向到相對URL:
了/page2.html
這是一個從供應超過https
重定向頁面,但重定向最終被服務的http
響應
https://someDomain.com/page1.html
重定向到
http://someDomain.com/page2.html
我應該能夠使用相對網址嗎?我們有一個代理服務器正在做一些重寫 - 這是負責任的,還是這只是在服務器端重定向不支持?
原來是Jetty將相對網址重寫爲絕對網址 - 並且由於它不知道它是否安全地提供服務(負載平衡器是安全加載的,而不是節點),因此url被重寫爲絕對URL - >用http://方案。更多信息[這裏](http://osdir.com/ml/java.jetty.general/2002-06/msg00188.html)和[在src中,它變成絕對的uri](https:/ /github.com/eclipse/jetty.project/blob/1a0eb64a1fabccd6d4b2990e1a6864db6ac2019b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/MovedContextHandler.java#L113) – 2014-09-08 16:58:56
請注意,[單元測試](https ://github.com/eclipse/jetty.project/blob/063ad177b510b238aa51396030870e7d9aef0b8e/tests/test-integration/src/test/java/org/eclipse/jetty/test/rfcs/RFC2616BaseTest.java#L1087),這意味着測試一個當請求是一個相對重定向時絕對URI(我認爲;-) – 2014-09-08 17:02:24
和來自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以及它們應該如何解決。 – 2014-09-08 17:39:05