9

I'm configuring our servers, and due to the nature of our load balancer, we can't send connection keep-alive headers. I'm trying to determine the impact of sending these headers to both the end-user and the server. Will either one notice anything?

Willemk
  • 117
  • 1
  • 2
  • 6
  • `sending these headers to both the end-user and the server` - Huh? Can you be more specific about what you're looking to do? Where would the headers be sent from, and how would this work around your load balancer's limitation against HTTP keep-alive connections? Working keep-alive needs more than just a header, it needs cooperation from every device involved in the HTTP aspects of the connection. – Shane Madden Oct 18 '11 at 20:02
  • My wording may have been a little odd, but the server is obviously sending the headers. I'm trying to find out what impact will this have on the client and server. – Willemk Oct 18 '11 at 20:14
  • What kind of load balancer do you have that is so dysfunctional that it breaks HTTP Keepalive? – voretaq7 Oct 18 '11 at 20:29
  • We have a rule which sends a subfolder to different server farm. When browsing from the root to the subfolder, the Keep-alive is keeping the connection open to the original server farm and not sending you to the intended server farm. – Willemk Oct 19 '11 at 14:52

2 Answers2

9

First and foremost, yell. Loudly. At your vendor. For having a product not supporting the over-a-decade-old HTTP/1.1 protocol.

The impact of not having persistent connections is a major increase in loading time of resources. With keep-alive, a single TCP connection can be used to request multiple resources; without, a new TCP session (with a new three-way handshake - and, if you use SSL, a new SSL negotiation) is required for each and every resource on the page.

In practical terms, the impact will depend on the number of resources on a page, the round-trip time between client and server, and the number of concurrent requests a client's browser is making at a time (modern browsers run ~6ish by default). Lots of resources per page and distant clients will mean a very noticeable increase in page load times.

Shane Madden
  • 112,982
  • 12
  • 174
  • 248
  • I've just checked, there are about 3 - 6 (depending on which page you're on) objects being loaded from that domain. This has me thinking that the slow down will be minimal, since it would have opened up ~6 concurrent connections anyways. – Willemk Oct 19 '11 at 14:54
  • @Willemk Yeah, that's very minimal for a typical page - the slowdown would be much more of a concern on a page loading dozens of objects. Should be just fine. – Shane Madden Oct 19 '11 at 14:59
  • CDN is taking most of the load. – Willemk Oct 19 '11 at 17:28
1

Keep alive will greatly enhance the performance on both the client and server side. If possible do not disable it. The load balancer should work fine with keep alive turned on.

Mircea Vutcovici
  • 16,706
  • 4
  • 52
  • 80