“Design depends largely on constraints.” — Charles Eames
Tuesday, 16 May 2006
I just finished my XTech presentation, “Web 2.0 on Speed”. here are the slides [pdf]; I’m going to try to s5 them soon. There isn’t much new in this talk; it’s just a synthesis of a few different observations;
You might say ‘duh’, but people often overlook the obvious; with event-looped Web servers like lighttpd (see c10k for more information), you can get 2-3 orders of magnitude more requests/second over LAMP and similar applications.
Because they’re easier to deploy as reverse proxies, and on virtually every browser. However, many developers fear them, because they can’t control them, or don’t trust how they’ll behave. This can be addressed by quantifying their behaviour and by educating users on how to control them (e.g., cache-control: private).
Using JavaScript to extend HTML allows the addition of a few small capabilities to browsers that make a big difference to caching. In particular, I made public three libraries I’ve been working on;
As I said in my talk, I’m not necessarily pushing these as libraries that should be standardised upon (although I’ve been using HInclude on almost every page of mnot.net with no complaints for the past three months). What I would like to see is for common JS functions like this to be sifted out and standardised as declarative markup, so that they’re more semantically transparent, and less of a security issue.
I think the real interesting work is going to come in extending the caching model, to allow things like credential caching, advanced invalidation, and even offline operation. Stay tuned.
Filed under: Caching, Web, Web Services
Looking forward to seeing the slides, but the PDF link isn't working for me.
Wednesday, May 17 2006 at 7:51 AM +10:00
Try http://www.mnot.net/papers/web_2_speed.pdf ("papers", not "papes").
Wednesday, May 17 2006 at 11:38 AM +10:00
Slides link doesn't work?
Was at another talk, but I read Mark Nottingham's notes, very interesting.
~Grauw
Wednesday, May 17 2006 at 1:40 PM +10:00
Fixed - thanks!
Wednesday, May 17 2006 at 3:12 PM +10:00
Mark: this is basically what Tim Bray has been saying, no?
http://www.tbray.org/ongoing/When/200x/2006/02/14/AJAX-Performance
Thursday, May 25 2006 at 10:40 PM +10:00
Aristotle,
Hey -- sorry, I missed your comment for some reason.
Yes, for the HIncludes part. What I'm saying is in no way new; we did similar things at Akamai but in proxies (because browser support was too dodgy) with ESI -- http://www.esi.org/ and Micah Rabinovich talked about doing it in clients in http://www.usenix.org/publications/library/proceedings/usits03/tech/full_papers/rabinovich/rabinovich.pdf .
Wednesday, June 21 2006 at 11:11 PM +10:00
Mark,
As usual very interesting. What caught my eye was this:
"What I would like to see is for common JS functions like this to be sifted out and standardised as declarative markup, so that they're more semantically transparent, and less of a security issue."
I'm with you 100%, and I've spotted other posts in the same vein. It will be interesting to see if the tide is turning towards keeping all the Ajax goodness, but with less of the scripty spaghettiness.
I've linked to one of the other posts on this subject from my blog, in an item called "Declarative Ajax...Now we're talking".
And if anyone is interested in this topic, I've also written a few things on how XForms is just such a declarative language, one of which is called "XForms and Ajax Languages".
Regards,
Mark
Tuesday, July 18 2006 at 7:48 PM +10:00