2 ms·
> Once the connection is upgraded, you loose all metadata included in the HTTP headers (because it’s not HTTP) and all protections relying on it. The Upgrade r
by whilenot-dev 2y ago
> Once the connection is upgraded, you loose all metadata included in the HTTP headers (because it’s not HTTP) and all protections relying on it.
The Upgrade request is HTTP and you can extract all needed metadata from there and store it server side as needed. Those metadata wouldn't change during an active WebSocket session anyway, would they?
- matharmin 2y agoWith your own native client: Yes, you can send arbitrary headers in the Upgrade request. In a browser however, you can't. It typically sets very little headers itself, and doesn't allow you to add custom headers.
- whilenot-dev 2y agoThe auth headers (Authorization, Cookie) are all passed along, and that's what I want to establish a secure connection from the browser. For more customized wishes there's always this "ticket"-based flow[0][1] that shouldn't be hard to implement. I might be a bit naive, but what needed metadata and custom headers are we talking about? [0]: https://devcenter.heroku.com/articles/websocket-security#authentication-authorization https://devcenter.heroku.com/articles/websocket-security#aut... [1]: https://lucumr.pocoo.org/2012/9/24/websockets-101/#authorization-and-ips https://lucumr.pocoo.org/2012/9/24/websockets-101/#authoriza...