Hi,
I see some people think the HTTP request for a WebSocket upgrade shouldn't honnor
301/302 redirects.
But the spec seems to say it is ok:
"/If the status code received from the server is not 101, the//
//client handles the response per HTTP [RFC2616] procedures. In//
//particular, the client might perform authentication if it//
//receives a 401 status code; the server might redirect the client//
//using a 3xx status code (but clients are not required to follow//
//them), etc. Otherwise, proceed as follows/."
"/The server MAY redirect the client using a 3xx status code//
//[RFC2616]. Note that this step can happen together with, before,//
//or after the optional authentication step described above./"
https://tools.ietf.org/html/rfc6455
In the version of Undertow I use, 1.2.12.Final, I see that the redirect response is
handled by
/org.xnio.http.HttpUpgrade/ :
private void handleRedirect(final HttpUpgradeParser parser) {
List<String> location = parser.getHeaders().get("location");
future.setException(new RedirectException(msg.redirect(), parser.getResponseCode(),
location ==
null ? null : location.get(0)));
}
Is it the same behavior in most recent Undertow releases?
Related discussion:
https://github.com/sta/websocket-sharp/issues/42
Thanks,
Julien