Google Modifies HTTP, Makes Chrome 50% Faster
conceivablytech.com
conceivablytech.com
Mike Belshe presented about SPDY in the IETF HTTP working group meeting at the most recent IETF meeting:
http://www.ietf.org/proceedings/80/slides/httpbis-7.pdf
We'd love for more folks to implement SPDY, both clients and servers.
Since Google servers and Chrome already support it, the chicken-egg problem might be solved. Firefox has an incentive to implement it to make Google search faster and other web service should implement this to provide a smoother user experience.
Q: Is SPDY a replacement for HTTP?
A: No. SPDY replaces some parts of HTTP, but mostly augments it. At the highest level of the application layer, the request-response protocol remains the same. SPDY still uses HTTP methods, headers, and other semantics. But SPDY overrides other parts of the protocol, such as connection management and data transfer formats.
Try this one: http://tools.ietf.org/agenda/80/slides/httpbis-7.pdf
1) Only Chrome supports it and even there it isn't fully supported. One really painful thing it is missing is support for switching from normal HTTP to SPDY without using NPN.
2) It requires the TLS NPN extension to function seamlessly. This is something that is just now being put into the OpenSSL package. It is why you need Chrome to do anything with SPDY, it has a special patch it applies to its internal version of OpenSSL.
It is good that people are taking interest but there is still a lot of work to do.
After seeing http://www.igvita.com/2011/04/07/life-beyond-http-11-googles... I decided to fiddle with doing the same with Node.js https://gist.github.com/911761 I'll be shoring it up into a real module but it is going to require changes to the zlib compression module, the bufferlist/binary module, the put module and to be really useful it will require a special build of Node.js and OpenSSL.
http://src.chromium.org/viewvc/chrome/trunk/src/net/tools/fl...
Regardless, neither OpenSSL or NSS have NPN in a release version. NSS doesn't seem to have merged the patch yet: https://bugzilla.mozilla.org/show_bug.cgi?id=547312
Igor was asked about this a while ago and expressed his dislike for it. Not sure if things have changed since.
While Wireshark's usability has been constantly improving, I will miss being able to do:
$ telnet google.com 80
GET / HTTP/1.1
Host: google.com $ telnet google.com 80
GET / HTTP/1.0
Is just going to become: >>> use SPDY;
>>> SPDY->dump('http://www.google.com/);which I believe was the previous poster intention since he mentioned wire shark..
Also piping bunch of unix command will suffer a little of they
This is perhaps a long way of saying that I don't expect that having tool support makes SPDY any nicer.
Not sure what the equivalent is on windows though.
Edit: The one at appspot.com has spdy.
What seems rather ironical is that I only started having these issues with Chrome after they added the Flash-sandbox, which was supposedly made to stop Flash from crashing the browser. With the result that Flash is always crashing the browser, something it never did before.
Sometimes I think Google needs a bigger QA-team.
When I visited Google Zürich (admittedly not as crucial as Mountainview) I learned that unit testing was mostly used so they had pretty red/green lines on those LCD screens in the hall, and that any dev could break the version /in production/ pretty easily with a misplaced commit...
This is not about preventing Flash from crashing, but about preventing your machine from getting owned by an exploit for one of the countless discovered and unpatched flash security flaws.
> ... I've moved back to Firefox 4 ...
That would be great, except FF4 doesn't let me log in to HN.I've seen two things implicated in several google support threads about the issue. First, having both the system and google's sandboxed flash versions enabled as plugins, and second, an older version of Trusteer Rapport (typically offered by banks) was implicated.
Both may be fixed by now, but if it's still crashing, try about:plugins, enable Details at top right, and disable the system version of Flash.
http://www.acceloweb.com/images/diagram_with.png
http://www.acceloweb.com/product_features.html (note how quick pages load)
Too bad.
Reminds me a lot of MS's strategy of adding incompatible features to existing standards.
It wasn't because they were nice or had the consumer's best interest at heart. They just wanted PCs to be faster, because they had a monopoly that sat atop PCs. So they benefit when PCs get faster, get replaced and stay ahead of would-be competitors.
And I truly hope I can be as sloppy as Microsoft and build a software that reaches only 95% market share.
You need to remember that before you were born "stuff happened".
That happened later once the usefulness of XmlHttpRequest was noted and other browsers added it directly to their JS support before it was formally specified.
So this is exactly the way to extend (by using clean extension points) that Google was using with SPDY. This is different than, say, implementing a <marquee>-Tag directly into the HTML renderer which doesn't provide a nice extension point.
Embrace & Extend is a well known, very destructive mechanism for subverting standards.
Enhancing existing standards with experimental extensions is a well known very useful mechanism for improving widely used standards.
As with anything to do with technology you need to look at the details to determine exactly what is happening on a case-by-case basis.
Just saying "that sounds like MS" isn't useful without examining the details. For example, many of Microsoft's extensions to HTML were very useful (eg, XMLHTTPRequest), whereas others weren't. It's a case-by-case thing, and asserting this is always bad is a very shallow interpretation.
TL;DR: Details matter. Experimenting by extending standards isn't always bad.
If you ignore IBM's and Sun's massive FUD campaigns against OOXML, and actually compare the specs, you'll find that OOXML is not anywhere near as bad as they claimed, and in many ways is better than ODF. ODF does have nicer markup--I'd much rather read or write by hand an ODF file. On the other hand, ODF is incomplete in major areas, and other areas are imprecise. (Sun and IBM actually tried to use this as a point in their FUD campaign, slamming OOXML for having too much detail).
Weirdly, Microsoft seem to have incompatibly forked their own OOXML format and are in no rush to fix that now that they've seen off the competitive threat posed by ISO standardisation of a competing format.
Google wants the whole web experience to be faster. They don't benefit in locking you in. I imagine Apache/Nginx/etc will all have SPDY support in due time (while still defaulting to HTTP or a hybrid setup) and it will be yet another nice enhancement to the web experience.
This reminds me of Microsoft skipping part of the three-way handshake for IIS-to-IE connections to reduce the latency to their servers as compared to Apache.
Wikiquote cites others as having said it, including Andrew Tanenbaum, Patricia Seybold, and Ken Olsen.
1) Create unfortunate speed hack so browser written by you is faster with servers written by you.
2) Declare it a spec without other existing implementations.
3) ????
4) PROFIT
[0] https://code.google.com/p/chromium/issues/detail?id=20960
[1] https://code.google.com/p/chromium/issues/detail?id=3543
Really?