Slashdot Mirror


HTTP Intermediary Layer From Google Could Dramatically Speed Up the Web

grmoc writes "As part of the 'Let's make the web faster' initiative, we (a few engineers — including me! — at Google, and hopefully people all across the community soon!) are experimenting with alternative protocols to help reduce the latency of Web pages. One of these experiments is SPDY (pronounced 'SPeeDY'), an application-layer protocol (essentially a shim between HTTP and the bits on the wire) for transporting content over the web, designed specifically for minimal latency. In addition to a rough specification for the protocol, we have hacked SPDY into the Google Chrome browser (because it's what we're familiar with) and a simple server testbed. Using these hacked up bits, we compared the performance of many of the top 25 and top 300 websites over both HTTP and SPDY, and have observed those pages load, on average, about twice as fast using SPDY. Thats not bad! We hope to engage the open source community to contribute ideas, feedback, code (we've open sourced the protocol, etc!), and test results."

28 of 406 comments (clear)

  1. Oh that's wonderful by Anonymous Coward · · Score: 5, Funny

    Now we can see Uncle Goatse twice as fast.

    1. Re:Oh that's wonderful by Anonymous Coward · · Score: 4, Interesting
    2. Re:Oh that's wonderful by D'Sphitz · · Score: 5, Insightful

      People take their slashdot comments way too seriously. Mod me whatever, it means nothing and I'll move on.

    3. Re:Oh that's wonderful by Simon+(S2) · · Score: 5, Funny

      I want my old Internet back.

      ME TOO!

      --
      I just don't trust anything that bleeds for five days and doesn't die.
    4. Re:Oh that's wonderful by krelian · · Score: 4, Interesting

      Slasdhot should track where moderators spend their mod points. Those who spend it all on the first five posts should be disqualified from moderating.

    5. Re:Oh that's wonderful by nschubach · · Score: 4, Funny

      Just over 2 hours.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  2. and faster still.. by Anonymous Coward · · Score: 4, Insightful

    remove flash, java applets ad's
    20X faster!

    1. Re:and faster still.. by Joe+Mucchiello · · Score: 4, Funny

      Remove the content too. It's all meaningless stuff like this post.

    2. Re:and faster still.. by commodore64_love · · Score: 4, Insightful

      Ye are joking, but ye are correct. Take this slashdot page. I used to be able to participate in discussion forum with nothing more than a 1200 baud (1kbit/s) modem. If I tried that today, even with all images turned off, it would take 45 minutes to load this page, mainly due to the enormous CSS files

      It would be nice if websites made at least *some* attempt to make their files smaller, and therefore load faster.

      --
      "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    3. Re:and faster still.. by ProfessionalCookie · · Score: 4, Interesting
      Are you kidding? The new slashdot is way easier to participate on from dialup. The CSS file may look huge but it's a 29KB one time download.

      Cache headers are set to one week so unless you're clearing your cache every page load it's amounts to nothing.

      If anything the scripts are bigger, but again, cached. Besides AJAX comments were a huge improvement for those of us on dialup- no more loading the whole page every time you did anything.

      CSS and JS, when used correctly make things faster for users, even (and sometimes especially) for those of us on slow connections.

  3. How about telling Analytics to take a hike? by rho · · Score: 5, Insightful

    And all other "add this piece of Javascript to your Web page and make it more awesomer!"

    Yes, yes, they're useful. And you can't fathom a future without them. But in the meantime I'm watching my status bar say, "completed 4 of 5 items", then change to "completed 11 of 27 items", to "completed 18 of 57 items", to "completed... oh screw this, you're downloading the whole Internet, just sit back, relax and watch the blinkenlights".

    Remember when a 768kbps DSL line was whizzo fast? Because all it had to download was some simple HTML, maybe some gifs?

    I want my old Internet back. And a pony.

    --
    Potato chips are a by-yourself food.
    1. Re:How about telling Analytics to take a hike? by ramaboo · · Score: 5, Funny

      And all other "add this piece of Javascript to your Web page and make it more awesomer!"

      Yes, yes, they're useful. And you can't fathom a future without them. But in the meantime I'm watching my status bar say, "completed 4 of 5 items", then change to "completed 11 of 27 items", to "completed 18 of 57 items", to "completed... oh screw this, you're downloading the whole Internet, just sit back, relax and watch the blinkenlights".

      Remember when a 768kbps DSL line was whizzo fast? Because all it had to download was some simple HTML, maybe some gifs?

      I want my old Internet back. And a pony.

      That's why smart web developers put those scripts at the end of the body.

  4. Solving the wrong problem by Animats · · Score: 5, Interesting

    The problem isn't pushing the bits across the wire. Major sites that load slowly today (like Slashdot) typically do so because they have advertising code that blocks page display until the ad loads. The ad servers are the bottleneck. Look at the lower left of the Mozilla window and watch the "Waiting for ..." messages.

    Even if you're blocking ad images, there's still the delay while successive "document.write" operations take place.

    Then there are the sites that load massive amounts of canned CSS and Javascript. (Remember how CSS was supposed to make web pages shorter and faster to load? NOT.)

    Then there are the sites that load a skeletal page which then makes multiple requests for XML for the actual content.

    Loading the base page just isn't the problem.

    1. Re:Solving the wrong problem by HBI · · Score: 4, Insightful

      IAWTP. With NoScript on and off, the web is a totally different place.

      --
      HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
    2. Re:Solving the wrong problem by Monkeedude1212 · · Score: 4, Funny

      I think you mean SNKY

  5. Re:Akamai? by TooMuchToDo · · Score: 4, Informative

    No. Akamai gives boxes to ISPs that cache Akamai's customer's content closer to the ISP's customers. Akamai then uses logic they've put together into DNS to redirect requests to the appliance closest to the request.

  6. Cool.... but it's not http by Colin+Smith · · Score: 4, Insightful

    So which ports are you planning to use for it?

     

    --
    Deleted
    1. Re:Cool.... but it's not http by grmoc · · Score: 4, Informative

      Right now the plan is to use port 443. We may as well make the web a safer place while we make it faster.
      The plans for indicating how a client/server speaks SPDY is still somewhat up in the air.. .. what we have planned right now, is:
      UPGRADE (ye olde HTTP UPGRADE).
      and, putting some string into the SSL handshake that allows both sides to advertise which protocols they speak. If both speak SPDY, then it can be used.
      This is nice because you don't have the additional latency of an additional roundtrip (and that latency can be large!)

  7. Not a terribly new concept. by ranson · · Score: 5, Informative

    AOL actually does something similar to this with their TopSpeed technology, and it does work very, very well. It has introduced features like multiplexed persistent connections to the intermediary layer, sending down just object deltas since last visit (for if-modified-since requests), and applying gzip compression to uncompressed objects on the wire. It's one of the best technologies they've introduced. And, in full disclosure, I was proud to be a part of the team that made it all possible. It's too bad all of this is specific to the AOL software, so I'm glad a name like Google is trying to open up these kind of features to the general internet.

  8. Re:Just turn off image loading by C0vardeAn0nim0 · · Score: 5, Funny

    here's an onion to hang on your belt, granpa.

    now, on a more serious note, isn't gopher a faster protocol than HTTP ? could we just use it to transport html, pictures, etc ?

    --
    What ? Me, worry ?
  9. Re:Slashdot could use the help by Anonymous Coward · · Score: 4, Insightful

    They need start with practicing what they preach...

    http://code.google.com/speed/articles/caching.html
    http://code.google.com/speed/articles/prefetching.html
    http://code.google.com/speed/articles/optimizing-html.html

    They turn on caching for everything but then spit out junk like

    http://v9.lscache4.c.youtube.com/generate_204?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=903900%2C903206&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1258081200&key=yt1&signature=8214C5787766320D138B1764BF009CF62A596FF9.D86886CFF40DB7F847246D653E9D3AA5B1D18610&factor=1.25&id=ccbfe79256f2b5b6

    Most cache programs just straight up ignore this. Because of the '?' in there. It ends up being a query to static data.

    Then never mind the load balancing bits they put in there with 'v9.lscache4.c.'. So even IF you get your cache to keep the data you may end up with a totally different server and the same piece of data just served from another server. There have been a few hacks to 'rewrite' the headers and the names to make it stick. But those are just hacks and while they work they seem fragile.

    The real issue is at the HTTP layer and how servers are pointed at from inside the 'code'. So instead of some sort of indirection that would make it simple for the client to say 'these 20 servers have the same bit of data' they must assume that the data is different from every server.

    Compression and javascript speedups are all well and good but there is a different more fundamental problem of extra reload of data that has already been retrieved. As local network usage is almost always faster than going back out to the internet. In a single user environment this is not too big of a deal. But in a 10+ user environment it is a MUCH bigger deal.

    Even the page that talks about optimization has issues
    http://code.google.com/speed/articles/
    12 cr/lf right at the top of the page that are not rendered anywhere. They should look at themselves first.

  10. While we're at it ... by RAMMS+EIN · · Score: 4, Interesting

    While we're at it, let's also make processing web pages faster.

    We have a semantic language (HTML) and a language that describes how to present that (CSS), right? This is good, let's keep it that way.

    But things aren't as good as they could be. On the semantic side, we have many elements in the language that don't really convey any semantic information, and a lot of semantics there isn't an element for. On the presentation side, well, suffice it to say that there are a _lot_ of things that cannot be done, and others that can be done, but only with ugly kludges. Meanwhile, processing and rendering HTML and CSS takes a lot of resources.

    Here is my proposal:

      - For the semantics, let's introduce an extensible language. Imagine it as a sort of programming language, where the standard library has elements for common things like paragraphs, hyperlinks, headings, etc. and there are additional libraries which add more specialized elements, e.g. there could be a library for web fora (or blogs, if you prefer), a library for screenshot galleries, etc.

      - For the presentation, let's introduce something that actually supports the features of the presentation medium. For example, for presentation on desktop operating systems, you would have support for things like buttons and checkboxes, fonts, drawing primitives, and events like keypresses and mouse clicks. Again, this should be a modular system, where you can, for example, have a library to implement the look of your website, which you can then re-use in all your pages.

      - Introduce a standard for the distribution of the various modules, to facilitate re-use (no having to download a huge library on every page load).

      - It could be beneficial to define both a textual, human readable form and a binary form that can be efficiently parsed by computers. Combined with a mapping between the two, you can have the best of both worlds: efficient processing by machine, and readable by humans.

      - There needn't actually be separate languages for semantics, presentation and scripting; it can all be done in a single language, thus simplifying things

    I'd be working on this if my job didn't take so much time and energy, but, as it is, I'm just throwing these ideas out here.

    --
    Please correct me if I got my facts wrong.
  11. Re:Before you click! by wolrahnaes · · Score: 4, Interesting

    Which of course led to quite amusing results when some failure of a web developer made an app that performed actions from GET requests. I've heard anecdotes of entire databases being deleted by a web accelerator in these cases.

    From RFC2616:

    Implementors should be aware that the software represents the user in their interactions over the Internet, and should be careful to allow the user to be aware of any actions they might take which may have an unexpected significance to themselves or others.

            In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered “safe”. This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.

            Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; in fact, some dynamic resources consider that a feature. The important distinction here is that the user did not request the side-effects, so therefore cannot be held accountable for them.

    --
    I used to get high on life, but I developed a tolerance. Now I need something stronger.
  12. Re:Before you click! by commodore64_love · · Score: 4, Funny

    >>>Sounds like those "dialup accelerators" from back in the '90s ...

    Hey I still use one of those you insensitive clod! It's called Netscape Web Accelerator, and it does more than just prefetch requests - it also compresses all text and images to about 10% original size. How else would I watch 90210 streaming videos over my phoneline?

    Why I can almost see what looks like a bikini. Man Kelly is hot... ;-)

    --
    "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
  13. HTTP-NG Revisited (ten years later!) by kriegsman · · Score: 4, Informative
    HTTP-NG ( http://www.w3.org/Protocols/HTTP-NG/ ) was researched, designed, and even, yes, implemented to solve the same problems that Google's "new" SPDY is attacking -- in 1999, ten years ago.

    The good news is that SPDY seems to build on the SMUX ( http://www.w3.org/TR/WD-mux ) and MUX protocols that were designed as part of the HTTP-NG effort, so at least we're not reinventing the wheel. Now we have to decide what color to paint it.

    Next up: immediate support in FireFox, WebKit, and Apache -- and deafening silence from IE and IIS.

  14. Re:Just turn off image loading by ribuck · · Score: 5, Informative

    Gopher is not installed by default, kiddie...

    Gopher is installed by default on most builds of Firefox. Try this in your address bar: gopher://gopher.floodgap.com/1/world

  15. Re:Just turn off image loading by commodore64_love · · Score: 4, Informative

    Someone already invented this.

    It's called Opera browser

    --
    "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
  16. fst wb prtcl by Anonymous Coward · · Score: 4, Funny

    If they really wanted a faster web, they would have minimized the protocol name. Taking out vowels isn't enough.

    The protocol should be renamed to just 's'.

    That's 3 less bytes per request.

    I can haz goolge internship?