Slashdot Banner
Stories
Slash Boxes
Comments
typodupeerror delete not in

Hot Comments

Comments: 406 +-   HTTP Intermediary Layer From Google Could Dramatically Speed Up the Web on Thursday November 12, @03:00PM

Posted by timothy on Thursday November 12, @03:00PM
from the sufficient-disclosure dept.
internet
google
networking
it
technology
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."
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Anonymous Coward on Thursday November 12, @03:01PM (#30077894)

    Now we can see Uncle Goatse twice as fast.

  • by courteaudotbiz (1191083) on Thursday November 12, @03:02PM (#30077912) Homepage
    In the future, the content will be loaded before you click! Unfortunately, it's not like it today, so I didn't make the first post...
      • 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.

        • Re:Before you click! (Score:4, Informative)

          by Hurricane78 (562437) <navid.zamani@NOspaM.googlemail.com> on Thursday November 12, @06:56PM (#30081476)

          Yes. thedailywtf.com has such stories. I specifically remember one, where the delete button of database entries was a GET link from the list page. So Google's little spider went there, and crawled the entire list. Requested every single delete link address on the page. I think it was not even linked from anywhere. The crawler got there by reading out the referrer addresses from when the developers came to Google from a link on that site.

          And if I remember correctly, it of course was a non backuped production database. The only one in fact. Must have been fun. :)

      • by commodore64_love (1445365) on Thursday November 12, @04:09PM (#30078952)

        >>>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... ;-)

      • addin not needed (Score:4, Informative)

        by eleuthero (812560) on Thursday November 12, @05:46PM (#30080620)
        Most of the features of fasterfox are found in about:config. There is no sense in installing an addon that will slow the browser down when the browser already has pipelining and prefetching (albeit disabled)
  • and faster still.. (Score:4, Insightful)

    by Anonymous Coward on Thursday November 12, @03:04PM (#30077928)

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

    • by amicusNYCL (1538833) on Thursday November 12, @03:42PM (#30078526)

      You could also remove images, CSS, Javascript, and text, imagine the time savings!

      • by Joe Mucchiello (1030) on Thursday November 12, @04:11PM (#30078982) Homepage

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

      • by commodore64_love (1445365) on Thursday November 12, @04:14PM (#30079028)

        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.

        • 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.

  • Suspicious.... (Score:3, Interesting)

    by Anonymous Coward on Thursday November 12, @03:08PM (#30078010)

    From the link

    We downloaded 25 of the "top 100" websites over simulated home network connections, with 1% packet loss. We ran the downloads 10 times for each site, and calculated the average page load time for each site, and across all sites. The results show a speedup over HTTP of 27% - 60% in page load time over plain TCP (without SSL), and 39% - 55% over SSL.

    1. Look at top 100 websites.
    2. Choose the 25 which give you good numbers and ignore the rest.
    3. PROFIT!

  • by rho (6063) on Thursday November 12, @03:09PM (#30078024) Homepage Journal

    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.

    • by ramaboo (1290088) on Thursday November 12, @03:11PM (#30078062)

      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.

      • Re: (Score:3, Insightful)

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

        It's also why smart users filter them outright with something like AdBlock - anything that I see in the browser history that looks like a tracking/stats domain or URL gets blocked on sight. Come to think of it, I could probably clean it up publish it as an AdBlock filter list if anyone's interested; there's only a few dozen entries on there at the moment, but I'm sure that would grow pretty quickly if it was used by a more general a

        • by causality (777677) on Thursday November 12, @03:58PM (#30078782)

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

          It's also why smart users filter them outright with something like AdBlock - anything that I see in the browser history that looks like a tracking/stats domain or URL gets blocked on sight. Come to think of it, I could probably clean it up publish it as an AdBlock filter list if anyone's interested; there's only a few dozen entries on there at the moment, but I'm sure that would grow pretty quickly if it was used by a more general and less paranoid userbase.

          What's paranoid about insisting that a company bring a proposal, make me an offer, and sign a contract if they want to derive monetary value from my personal data? Instead, they feel my data is free for the taking and this entitlement mentality is the main reason why I make an effort to block all forms of tracking. I never gave consent to anyone to track anything I do, so why should I honor an agreement in which I did not participate? The "goodness" or "evil-ness" of their intentions doesn't even have to be a consideration. Sorry but referring to that as "paranoid" is either an attempt to demagogue it, or evidence that someone else's attempt to demagogue it was successful on you.

          Are some people quite paranoia? Sure. Does that mean you should throw out all common sense, pretend like there are only paranoid reasons to disallow tracking, and ignore all reasonable concerns? No. Sure, someone who paints with a broad brush might notice that your actions (blocking trackers) superficially resemble some actions taken by paranoid people. Allowing that to affect your decison-making only empowers those who are superficial and quick to assume because you are kowtowing to them. This is what insecure people do. If the paranoid successfully tarnish the appearance of an otherwise reasonable action because we care too much about what others may think, it can only increase the damage caused by paranoia.

        • Adsense is embedded where the ads are going to be, Google Maps scripts are embedded where the map is going to be, etc.

          This doesn't have to be the case, unless you're still coding per 1997 standards. Even with CSS 1, you can put those DIVs last in the code and still place them wherever you want them to be.

          It's what I do with the Google ads (text only ads, FWIW) on one of my personal sites - so the content loads first, and then the ads show up.

    • Re: (Score:3, Insightful)

      I want my old Internet back. And a pony.

      LOL. I'd suggest disabling javascript and calling it a day.

      Alternatively, use a text-based browser. If the webpage has any content worth reading, then a simple lynx -dump in 99% of cases will give you what you want, with the added bonus of re-formatting those mile-wide lines into something readable.

      On the other hand, I suspect most people don't want the "old internet". What was once communicated on usenet or email in a few simple lines, for example, now increasingl

  • by Animats (122034) on Thursday November 12, @03:10PM (#30078038) Homepage

    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.

  • Application Layer... (Score:3, Interesting)

    by Monkeedude1212 (1560403) on Thursday November 12, @03:12PM (#30078068)

    Doesn't that mean that both the client and the server have to be running this new application to see the benefits of this? Essentially either one or the other is still going to be using HTTP if you don't set it up on both, and its only as fast as the slowest piece.

    While a great initiative, it could be a while before it actually takes off. To get the rest of the world running on a new protocol will take some time, and there will no doubt be some kinks to work out.

    But if anyone could do it, it'd be Google.

  • by Colin Smith (2679) on Thursday November 12, @03:19PM (#30078178)

    So which ports are you planning to use for it?

     

      • by grmoc (57943) on Thursday November 12, @04:58PM (#30079840)

        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!)

  • by ranson (824789) on Thursday November 12, @03:22PM (#30078210) Homepage Journal
    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.
  • by RAMMS+EIN (578166) on Thursday November 12, @03:30PM (#30078336) Homepage Journal

    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.

    • by rabtech (223758) <slashdot_sez@bonevil l e . net> on Thursday November 12, @05:31PM (#30080394)

      e 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.

      The problem is that worrying about semantic vs presentation is something that almost no one gives a s**t about, because it is an artificial division that makes sense for computer science reasons, not human reasons. I don't sit down to make a web page and completely divorce the content vs the layout; the layout gives context and can be just as important as the content itself in terms of a human brain grasping an attempt at communication.

      I know I shouldn't use tables for presentation but I just don't care. They are so simple and easy to visualize in my head, and using them has never caused a noticeable slowdown in my app, caused maintenance headaches, cost me any money, etc. The only downside is listening to architecture astronauts whine about how incorrect it is while they all sit around and circle-jerk about how their pages pass this-or-that validation test.

      In oh so many ways writing a web app is like stepping back into computer GUI v1.0; so much must be manually re-implemented in a different way for every app. Heck, you can't even reliably get the dimensions of an element or the currently computed styles on an element. Lest you think this is mostly IE-vs-everyone else, no browser can define a content region that automatically scrolls its contents within a defined percentage of the parent element's content region; you've gotta emit javascript to dynamically calculate the size. This is double-stupid because browsers already perform this sort of layout logic for things like a textarea that has content that exceeds its bounds. And guess what? This is one of the #1 reasons people want to use overflow:auto. Don't waste screen real-estate showing scrollbars if they aren't necessary, but don't force me to hard-code height and width because then I can't scale to the user's screen resolution.

      This kind of crap is so frustrating and wastes MILLIONS upon MILLIONS of man-hours year after year, yet we can't even get the major browser vendors to agree to HTMLv5 and what little bits (though very useful) it brings to the table. So please spare me the semantic vs presentation argument. If just a few people gave a s**t and stopped stroking their own egos on these bulls**t committees and actually tried to solve the problems that developers and designers deal with every day then they wouldn't have to worry about forcing everyone to adopt their standard (IPv6), the desire to adopt it would come naturally.

  • A novel idea (Score:4, Interesting)

    by DaveV1.0 (203135) on Thursday November 12, @03:49PM (#30078640) Journal

    How about we don't use HTTP/HTML for things they were not designed or ever intended to do? You know, that "right tool for the right job" thing.

  • by unix1 (1667411) on Thursday November 12, @04:06PM (#30078898)

    It's not all rosy as the short documentation page explains. While they are trying to maximize throughput and minimize latency, they are hurting other areas. 2 obvious downsides I see are:

    1. Server would now have to keep holding the connection open to the client throughout the client's session, and also keep the associated resources in memory. While this may not be a problem for Google and their seemingly limitless processing powers, a Joe Webmaster will see their web server load average increase significantly. HTTP servers usually give you control over this with the HTTP keep-alive time and max connections/children settings. If the server is now required to keep the connections open it would spell more hardware for many/most websites;

    2. Requiring compression seems silly to me. This would increase the processing power required on the web server (see above), and also on the client - think underpowered portable devices. It needs to stay optional - if the client and server both play and prefer compression, then they should do it; if not, then let them be; also keeping in mind that all images, video and other multimedia are already compressed - so adding compression to these items would increase the server/client load _and_ increase payload.

  • by kriegsman (55737) on Thursday November 12, @04:13PM (#30079022) Homepage
    HTTP-NG ( http://www.w3.org/Protocols/HTTP-NG/ [w3.org] ) 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 [w3.org] ) 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.

  • by Anonymous Coward on Thursday November 12, @05:16PM (#30080174)

    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?

    • Re:Akamai? (Score:5, Informative)

      by TooMuchToDo (882796) on Thursday November 12, @03:14PM (#30078112)
      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.
      • Re: (Score:3, Informative)

        No. Akamai offers many services and features beyond 'giving' boxes to ISPs. For instance, they have their own global CDN unrelated to any ISP which you can pay to have your content served across. They'll host it or reverse proxy/cache it. They also can multicast live streaming media, on demand streaming media, etc. You get the picture. In once sentence, Akamai is a high availability, high capacity provider of bandwidth. And they accomplish that in a variety of ways other than just putting boxes in ISPs.
      • I strongly suspect that whether or not HTTP is "broken" is largely a matter of perspective. For classic website serving, HTTP works pretty well. Not perfectly; but easily well enough that it isn't worth replacing.

        If, though, your business model largely depends on creating webapp UIs that are good enough to compete with native local UIs, HTTP's latency and other issues are going to strike you as a fairly serious problem(particularly if the future is very likely going to involve a lot more clients connecti
If you are what you eat, does that mean Euell Gibbons really was a nut?