On Tue, Jun 5, 2012 at 11:41 AM, Stephan Peijnik <stephan@xxxxxxxxxx> wrote: > On 06/05/2012 08:31 PM, Junio C Hamano wrote: >> >> How does this compare with the smart-http support that tunnels the >> git protocol over http (with some butchering)? > > > To be honest, I didn't know smart-http support yet. Is that the approach > introduced with git 1.6.6? Yes. So its been around for a while now. Like 2 years. > If so, that approach uses multiple POST requests, meaning multiple TCP and > HTTP connections need to be established, multiple requests processed, etc. Its actually only one TCP connection... assuming the servers in between the client and the Git endpoint correctly support HTTP keep-alive semantics. > The WebSocket approach uses a single HTTP connection which gets upgraded to > a WebSocket. This WebSocket then allows the same communication to happen as > with the ssh implementation. How does this fair going through crappy proxy servers that perform man-in-the-middle attacks on SSL connections? Just last week I was trying to help someone whose local proxy server was MITM the SSL session behind Git's back, and their IT department forgot to install the proxy server's certificate into the system certificate directory. They only installed it into the browser. That proxy also doesn't correctly grok HTTP 1.1 keep-alive with chunked transfer encodings. Let alone something as new as web sockets. > So in comparison there is possibly a lot less overhead and, in theory, the > performance should be comparable to running the smart protocol over ssh. > Personally I'd say the WebSocket approach is cleaner than the HTTP-POST > approach. This may be true. But its also a lot more complex to implement. I noticed you reused Python code to help make this work. Let me know when there is a GPLv2 client library that implements sufficient semantics for WebSockets that Git can bundle it out of the box. And let me know when most corporate IT proxy servers correctly grok WebSockets. I suspect it will be many more years given that they still can't even grok chunked transfer encoding. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html