At least nginx is going to start including it: https://twitter.com/#!/nginxorg/status/150112670966747137
I think we used node-spdy to run unit tests, as it was one of the more complete implementations.
- Single Request per Connection. It seems that HTTP 1.1 already addressed this with pipelining.
- FIFO Queuing. I feel like the client is in a better position to know in what order the page needs to be rendered than the server. Why shouldn't the server respond in the order that the client asked for?
- Client Initiated Request. Wouldn't it be better inform the client of what it needs rather than just guessing that the client needs these files and sending them down the pipe? It seems that this feature might waste bandwidth, when it could have hit the cache.
- Uncompressed headers. For slow lines, compressed header might be nice if they were very large. That said, I think a better solution to compressing data is to not send it at all. (If you want to increase speed, do you REALLY need to send the User-Agent and Referer at all?) The smallest data is the one that isn't sent.
- Optional data compression. SPDY is forcing data compression? That seems wasteful of power, esp. for mobile devices when sending picture, sound, or video data.
Of course, this list is all just blowing smoke until its actually tested. However, I couldn't find an independent study of SPDY performance.
- pipelining is still single-file request-response though. With SPDY, you can send multiple requests at once, and the server responds to them in whatever order it likes.
- The point of removing the FIFO queuing is that the server can start responding with simple files before the more expensive resources are calculated. Usually the HTML itself can take a while to be generated server-side, where as CSS and JS files are usually just served straight off disk.
In a FIFO model, the 200ms the client is waiting for the HTML to be generated is just wasted. You could be using that time to be downloading CSS or JS or images, etc.
- There's two options for server-initiated requests in SDPY. One where the server says "Since you requested this resource, you'll probably also want this, this, and this." (i.e. it sends links to the client with the related resources). Other other option is where it actually says, "Since you request this resources, here's these other resources you might be interested in as well."
In the first case, the client can begin processing those other files (e.g. checking it's local cache or actually making a request for them) before the original resource has completed downloading/parsing. In the second case, it could be that the original resource and the "sub-resource" (e.g. HTML file and attached CSS file) have similar caching rules, so if a client requests one it's likely that it'll request the other anyway.
- SDPY also has options for not including those kinds of things (e.g. User-Agent, Host, Accept-*) on every request. But even when you do that, compression still has benefits. Even once you've removed all the redundant data, compression will still help, so why wouldn't you?
- I agree there's certain kinds of content which don't benefit greatly from compression. But on almost all platforms, CPU power is much higher than network capacity. In fact, I can't think of a single platform where that's not the case...
As for header compression, have you checked how large headers are these days? They can easily be 1.5 kb.
Any news on if other browser vendors (Microsoft, Apple...) are on board?
http://bitsup.blogspot.com/2011/09/spdy-what-i-like-about-yo...
But yes, there remains no silver bullet, and you'll have to pick the right tool for the job.
Nothing stops a proxy from handling SPDY, if the client trusts it to do so and doesn't mind getting MITMed.
The authentication can happen external to the http or spdy transaction as well.
True, but insecure HTTP provides neither authentication nor encryption.
> if there is nothing sensitive about the content.
Encrypting only sensitive content leaks information to observers and attackers, namely when you transmit sensitive content, and which servers you connect to when you do so. Encrypting all content eliminates that information leak.
A SPDY client that trusts a particular proxy could easily allow that proxy to operate on its behalf, and SPDY would actually make that far more efficient.
No-one has a viewport that large. You can do lazy image loading in just a few lines of javascript, without jquery. Scripts can be deferred, etc.
I fear SPDY is going to be yet another way to allow shoddy, lazy website functionality.
tl;dr If SPDY lets me write a website without worrying about how many elements are loading at a time then ill have more time to spend on actually building a product.
You can do lazy image loading in just a few lines of javascript, without jquery. Scripts can be deferred, etc.
Those are hacks. I'd rather have a browser that loads stuff really fast and not have to jump through hoops like spriting, etc. If you're really concerned about deferring the loading of images, that could also be a feature of the browser.Also, consider that asking the question, "why the heck would anyone develop a website that loads that many elements all at once," is like asking, "why the heck would anybody develop a program that doesn't fit on a 1.44MB floppy?".
Why are you loading asssets for the footer when only above the fold is seen on initial page load?
In your floppy comparison, that would be like copying over an entire 16GB SD card just to view a few pictures you took this morning.
I just opened my G+ page and count 50+ user thumbnails. Many modern social websites have lots and lots of small unique user-specific images.
100,000,000 users, many with upwards of 1000 friends, with no obvious way to determine the most frequent?
You could sprite the top 100 users, but that wouldn't have much benefit to most people. Top 1000 is likely too big to send out to every user.
Just sending them as we do now is lots of HTTP requests. If we could somehow reduce the requests... Ah, pipelining, or even better the built in feature of SPDY.
In reality right now, Google+ uses SPDY for everything but the avatars, which are served over normal HTTPS from https://lh3.googleusercontent.com/. Wonder why?
For instance header compression using a shared prefix dictionary saves only a handful (~100 bytes) over TLS compression -- worthless, not to mention it's already had several versions of the prefix dictionary.
Spdy developers didn't even test against HTTP tunneling, which in practice as seen in current Firefox and Opera works just as well. The 'head of line blocking' is not a big deal in practice.
"Tunneling" to me sounds somewhat like proxying but I think you mean something else?
Mozilla Corp: Wholly 0wned Subsidiary of Google Inc
What's so bad about companies making it open, free and open source, thus contributing to a better Internet experience for everyone? No one limited SPDY to Google sites - Microsoft and Yahoo are free to implement it for their servers and enjoy browsing speedups with Chrome and (soon) Firefox 11.
Is Mozilla acting in the interest of the Open Web or was this a bargaining chip with their $300M default search provider deal?
Traffic is harder to debug. Google continues to act like it owns the Web.
These are disadvantages for the world.
Bring on the downvotes of the naive Googlers! This place was getting boring anyway...
Is Mozilla doing the best thing for the Web or further cementing the current browser landscape? Will it be better when I have to write my crawlers to work with HTTP 1.1, SPDY, and HTTP Next?
My objection to this turn of events is almost entirely related to the behavior of Google and their search deal with Mozilla. Mozilla has compromised their principles again and again for Google and it is accelerating.
I'm tired of Google's doublespeak and lies about "Open Web" and open standards. If SPDY takes off, we will all have to think about supporting it and if it's built correctly that will be fine. I seriously have my doubts.
It would have been much less suspicious if the second browser to adopt SPDY was Safari or IE. Right now, it looks like Google is essentially bribing an "independent" browser vendor to implement their half-baked standards so they can turn around and claim "it's a web standard!".
It's like 1999 but now with corporate protectorates!