> What exactly are they planning to put in the headers to make them so big they need to be compressed? Normal headers are not large.
Compressing headers is not for handling large headers. They are for handling repeated headers. For example, with every request-response pair, you waste a few bytes saying "Accept-Ranges:bytes", you waste a few bytes saying "Server:Apache/2.4.1 (Unix) OpenSSL/1.0.0g", you waste a few bytes saying "Connection:Keep-Alive", etc. Further, when you compress headers, you save a few bytes for repeatedly using the string "Cache-Control:", "Content-Length", "Last-Modified:", etc.
If you take a look at the work done here: http://www.eecis.udel.edu/~amer/PEL/poc/pdf/SPDY-Fan.pdf, (ironically, the pdf is entitled SPDY-Fan after one of the authors), you will find that the average HTTP request they studied is (reasonably) 629.8 bytes whereas SPDY (after some warm-up) transmits 35 bytes on average. Similarly, the average http response they studied is (reasonably) 437.7 bytes whereas SPDY (after some warm-up) transmits 63.8 bytes on average.
> Another new addition was de-serialization. But I see nothing wrong with receiving the data in the order I requested it. If the transmission is interrupted, at least then I can restart where I left off. [...] Alas, no one used it. Why? Maybe because it didn't have a catchy acronym and a corporate brand behind it.
Historically, browser support for pipelining has pretty much been limited to Opera. Chrome has an implementation now, and I believe, so does Firefox. I don't think either of these are enabled, by default, although I could be mistaken.
Realistically speaking, pipelining is essentially a hack to make a synchronous protocol more efficient. If the creators of HTTP were to repeat their efforts today, knowing how the protocol they are creating is going to be used, I'd bet my left arm that they would create a multiplexed protocol.
> especially not now.
Are you also going to avoid all the sites that use an unpatched OpenSSL? CRIME seems to affect those just as it affects SPDY.
Yes I know about repeated headers but as I explained I've actually found a use for them. I do pipelining everyday. I don't think "Gee, these repeated headers are really eating up my bandwidth." It's just not that big a deal. The headers are like 10 lines or less. The headers for HN are like what, two lines? Headers are nothing compared to all the useless cruft in HTML nowadays.* That is a situation where I am definitely thinking "This is unbelievable. 90% cruft and 10% content." Wanna "fix" something? Talk some sense into web developers.
* Unless you start jamming them with larger and larger cookies.
Multiplexing is also my preference. I think you would be able to keep your left arm. But I'd rather do it over UDP. HTTP is OK, we all have to use it, but it's not the bee's knees. Uploading stuff via non-idempotent HTTP requests needs to die. The web browser centricity school of thought is not my thing. SPDY is probably excellent for Google's purposes, it just isn't for mine. I guess I am one of the few.
I think Firefox has actually had pipelining support for many years. They just never turned it on by default. As I say no one seemed to use pipelining. Neither servers nor clients. But they sure took notice of SPDY.
I'll bet the SPDY fan tested things with downloading stuff from multiple domains, simulating the typical hodgepodge webpage. But that's not how I do my "browsing". I block everything but the stuff I want, it all comes from one source, one domain. I retrive only the content and leave the cruft behind. Efficiency.
I've never been thrilled with SSL (and guess what, I'm not a Javascript fan either... Netscape was the world's slowest and most unstable browser but they did what they had to do to make ecommerce possible; now we have js, ssl and cookies, what lovely things) but what choice do I have? And what am I supposed to do if my bank has an unpatched SSL? Email them and tell them they are idiots? I just assume there's always something wrong with SSL; if I just wait a while somehow I'm always right. Time to upgrade. Again. I've become an NaCl fan, so maybe there is hope. There life after SSL.
Comments
> What exactly are they planning to put in the headers to make them so big they need to be compressed? Normal headers are not large.
Compressing headers is not for handling large headers. They are for handling repeated headers. For example, with every request-response pair, you waste a few bytes saying "Accept-Ranges:bytes", you waste a few bytes saying "Server:Apache/2.4.1 (Unix) OpenSSL/1.0.0g", you waste a few bytes saying "Connection:Keep-Alive", etc. Further, when you compress headers, you save a few bytes for repeatedly using the string "Cache-Control:", "Content-Length", "Last-Modified:", etc.
If you take a look at the work done here: http://www.eecis.udel.edu/~amer/PEL/poc/pdf/SPDY-Fan.pdf, (ironically, the pdf is entitled SPDY-Fan after one of the authors), you will find that the average HTTP request they studied is (reasonably) 629.8 bytes whereas SPDY (after some warm-up) transmits 35 bytes on average. Similarly, the average http response they studied is (reasonably) 437.7 bytes whereas SPDY (after some warm-up) transmits 63.8 bytes on average.
> Another new addition was de-serialization. But I see nothing wrong with receiving the data in the order I requested it. If the transmission is interrupted, at least then I can restart where I left off. [...] Alas, no one used it. Why? Maybe because it didn't have a catchy acronym and a corporate brand behind it.
Historically, browser support for pipelining has pretty much been limited to Opera. Chrome has an implementation now, and I believe, so does Firefox. I don't think either of these are enabled, by default, although I could be mistaken.
For issues with pipelining, this document has a few hints http://tools.ietf.org/html/draft-nottingham-http-pipeline-01.... As well, pipelining cannot be used for non-idempotent requests, i.e. non-(HEAD|GET) requests.
Realistically speaking, pipelining is essentially a hack to make a synchronous protocol more efficient. If the creators of HTTP were to repeat their efforts today, knowing how the protocol they are creating is going to be used, I'd bet my left arm that they would create a multiplexed protocol.
> especially not now.
Are you also going to avoid all the sites that use an unpatched OpenSSL? CRIME seems to affect those just as it affects SPDY.
I agree with your comments.
Yes I know about repeated headers but as I explained I've actually found a use for them. I do pipelining everyday. I don't think "Gee, these repeated headers are really eating up my bandwidth." It's just not that big a deal. The headers are like 10 lines or less. The headers for HN are like what, two lines? Headers are nothing compared to all the useless cruft in HTML nowadays.* That is a situation where I am definitely thinking "This is unbelievable. 90% cruft and 10% content." Wanna "fix" something? Talk some sense into web developers.
* Unless you start jamming them with larger and larger cookies.
Multiplexing is also my preference. I think you would be able to keep your left arm. But I'd rather do it over UDP. HTTP is OK, we all have to use it, but it's not the bee's knees. Uploading stuff via non-idempotent HTTP requests needs to die. The web browser centricity school of thought is not my thing. SPDY is probably excellent for Google's purposes, it just isn't for mine. I guess I am one of the few.
I think Firefox has actually had pipelining support for many years. They just never turned it on by default. As I say no one seemed to use pipelining. Neither servers nor clients. But they sure took notice of SPDY.
I'll bet the SPDY fan tested things with downloading stuff from multiple domains, simulating the typical hodgepodge webpage. But that's not how I do my "browsing". I block everything but the stuff I want, it all comes from one source, one domain. I retrive only the content and leave the cruft behind. Efficiency.
I've never been thrilled with SSL (and guess what, I'm not a Javascript fan either... Netscape was the world's slowest and most unstable browser but they did what they had to do to make ecommerce possible; now we have js, ssl and cookies, what lovely things) but what choice do I have? And what am I supposed to do if my bank has an unpatched SSL? Email them and tell them they are idiots? I just assume there's always something wrong with SSL; if I just wait a while somehow I'm always right. Time to upgrade. Again. I've become an NaCl fan, so maybe there is hope. There life after SSL.