mnot’s blog

Design depends largely on constraints.” — Charles Eames

Web Entries

Friday, 25 November 2011

Linking in JSON

To be a full-fledged format on the Web, you need to support links -- something sorely missing in JSON, which many have noticed lately. In fact, too many; everybody seems to be piling on with their own take on how...

this entry’s page (23 comments)

Friday, 21 October 2011

Why ESI is Still Important, and How to Make it Better

More than ten years ago, I was working at Akamai and got involved in the specification of Edge Side Includes (ESI), sort of a templating language for intermediaries. In that time, interest in ESI has grown, waned and been reborn. As...

this entry’s page (9 comments)

Wednesday, 12 October 2011

Thinking about Namespaces in JSON

Since joining Rackspace to help out with OpenStack, one of the hot topics of conversation I’ve been involved in has been extensibility and versioning. I think most of my readers (yes, all six of you) are fairly familiar with, if...

this entry’s page (11 comments)

Friday, 2 September 2011

RFC6266 and Content-Disposition

HTTPbis published RFC6266 a little while ago, but the work isn’t finished. This is the RFC that clarifies how the Content-Disposition header is used in HTTP; in a nutshell, while basic file downloads worked OK, there wasn’t any broad interoperability...

this entry’s page (3 comments)

Sunday, 28 August 2011

Better Browser Caching

In discussing my whinge about AppCache offline with a few browser vendory folks, I ending up writing down my longstanding wishlist for making browser caches better. Without further ado, a bunch of blue-sky ideas; Cache Contexts Most current HTTP caches...

this entry’s page

Wednesday, 24 August 2011

Distributed Hungarian Notation doesn't Work

It used to be that when you registered a media type, a URI scheme, a HTTP header or another protocol element on the Internet, it was an opaque string that was a unique identifier, nothing more. Sure, there are some...

this entry’s page (4 comments)

Friday, 5 August 2011

HTTP Pipelining Today

Last week, Blaze.io highlighted how mobile browsers use HTTP pipelining. I’ve been active in trying to get pipelining more widely deployed, but to date I haven’t tested mobile browsers much. So, one VM and two test pages (20 images...

this entry’s page (2 comments)

Wednesday, 27 July 2011

CSP

FYI, I’ve implemented Content Security Policy on this site. If your’e a Mozilla user, please tell me if you have any problems. (No, I’m not particularly worried about XSS here; I just want to get a feel for it; see...

this entry’s page

Monday, 11 July 2011

What Proxies Must Do

The explosion of HTTP implementations isn’t just in clients and servers. An oft-overlooked but important part of the Web ecosystem is the intermediary, often called just a “proxy”*. These days, it’s pretty easy for anyone to build a proxy...

this entry’s page (3 comments)

Sunday, 19 June 2011

Fixing AppCache

HTML5’s AppCache mechanism is one confused little puppy. Purporting to be for taking web applications offline — a compelling and useful thing — it’s more often used by performance-hungry sites that want to use it as an online cache....

this entry’s page (4 comments)

Friday, 27 May 2011

Linked Cache Invalidation

After designing and deploying Cache Channels, it quickly became apparent that one Web cache invalidation mechanism wasn’t able to cover the breadth of use cases. In a nutshell, Cache Channels trades off immediacy for reliability; that is, while cache...

this entry’s page

Wednesday, 18 May 2011

On HTTP Load Testing

A lot of people seem to be talking about and performing load tests on HTTP servers, perhaps because there’s a lot more choice of servers these days. That’s great, but I see a lot of the same mistakes being...

this entry’s page (18 comments)

Monday, 4 April 2011

HTTP POST: IETF Prague Edition

Last week found lots of HTTP-ish folks in Prague for IETF 80. In short, the good bits: HTTPbis HTTPbis had a cracker of a meeting, with three RFC2616 authors and representatives of all five major browsers in the room....

this entry’s page (3 comments)

Tuesday, 22 March 2011

Your REST worries have ended.

Now, you can test any URL to instantly determine if it’s RESTful. You’re welcome....

this entry’s page (2 comments)

Tuesday, 1 March 2011

Last Call: Content-Disposition

The IESG has received a request from the Hypertext Transfer Protocol Bis WG (httpbis) to consider the following document: 'Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)' <draft-ietf-httpbis-content-disp-06.txt> as a Proposed Standard The IESG plans...

this entry’s page

Friday, 1 October 2010

HTTP Roundup: What’s Up with the Web’s Protocol

I’m going to try to start blogging more updates (kick me if I don’t!) about what’s happening in the world of HTTP. HTTPbis The effort to revise the core HTTP specification (RFC 2616) is going nicely, albeit slowly. Given...

this entry’s page (8 comments)

Friday, 23 July 2010

Thou Shalt Use TLS?

Since SPDY has surfaced, one of the oft-repeated topics has been its use of TLS; namely that the SPDY guys have said that they’ll require all traffic to go over it. Mike Belshe dives into all of the details...

this entry’s page (7 comments)

Thursday, 3 June 2010

Why Our New TV Doesn't Like the Web

A while back we used an absurd amount of reward points from our credit card to get some Myer gift certificates, and on the weekend these miraculously turned into a new TV, the Sony 32EX600. Overall, we really like...

this entry’s page (4 comments)

Thursday, 6 May 2010

RFC5861: HTTP Stale Controls

On a bit of a roll, RFC5861: HTTP Stale Controls has (finally) been published as an Informational RFC. As discussed before in “Two HTTP Caching Extensions,” these are very useful ways to hide latency and errors from your end...

this entry’s page (5 comments)

Wednesday, 5 May 2010

Thoughts on Archiving HTTP

Steve Souders and others have been working for a while on HAR, a HTTP Archive format. I love the idea behind HAR, but as I expressed on the mailing list (so far no response), I have a hard time...

this entry’s page (8 comments)

Wednesday, 7 April 2010

RFC5785: Well-Known URIs

One of the nagging theoretical problems in the Web architecture has been finding so-called “site-wide metadata”; i.e., finding something out about a Web site before you access it. We wrestled with this in P3P way back when, and the TAG...

this entry’s page (3 comments)

Wednesday, 10 March 2010

Caching-Tutorial für Webautoren und Webmaster

Thomas Hühn has graciously translated the caching tutorial into German. Thanks! See also the Chinese, Czech and French translations. To help the translators keep up with changes, I've started hosting the raw document on Github, which can also be...

this entry’s page

Thursday, 18 February 2010

Are Resource Packages a Good Idea?

Resource Packages is an interesting proposal from Mozilla folks for binding together bunches of related data (e.g., CSS files, JavaScript and images) and sending it in one HTTP response, rather than many, as browsers typically do. Intuitively, this seems...

this entry’s page (18 comments)

Friday, 15 January 2010

WS-REST (heh, heh)

If you haven’t seen it already, check out the Call for Papers for the First International Workshop on RESTful Design (WS-REST 2010), where I’m on the program committee, along with many of the usual suspects. Submissions due February 8, 2010,...

this entry’s page (1 comment)

Wednesday, 16 December 2009

HTTP + Politics = ?

Australia has apparently decided, through its elected leaders, to filter its own Internet connection. Since many, many other people are discussing whether this is advisable or indeed effective, I’ll focus here on what this will do to HTTP, and...

this entry’s page (3 comments)

Friday, 13 November 2009

Will HTTP/2.0 Happen After All?

A couple of nights ago, I had a casual chat with Google’s Mike Belshe, who gave me a preview of how their “Let’s make the Web faster” effort looks at HTTP itself. SPDY (nee FLIP) is an alternate application...

this entry’s page (6 comments)

Friday, 30 October 2009

Traffic Server

A long time ago*, the word in high-performance proxy-caching was Inktomi’s Traffic Server. It was so fast it was referred to being “carrier grade” and this could be said without people smirking, and it was deployed by the likes...

this entry’s page (6 comments)

Thursday, 13 August 2009

#gov2au

Although I'm a bit concerned to see so many references to "Web 2.0", it's very exciting to see Australia talking about opening up government. They've asked for feedback, so I've submitted my AU.02, and will try to attend the...

this entry’s page

Friday, 3 July 2009

Come to the Stockholm IETF!

The Stockholm IETF meeting is shaping up to be an interesting one (and not just because it’s in such a beautiful city). As announced on the mailing list, we are having a HTTPbis working group meeting. It looks like...

this entry’s page

Thursday, 25 June 2009

The Resource Expert Droid

A (very) long time ago, I wrote the Cacheability Engine to help people figure out how a Web cache would treat their sites. It has a few bugs, but is generally useful for that purpose. However, as I’ve got...

this entry’s page (15 comments)

Wednesday, 17 June 2009

面向站长和网站管理员的Web缓存加速指南

The caching tutorial is now available in Chinese, courtesy of Che Dong (and apologies for taking so long in linking to it!). Norwegian should be coming soon......

this entry’s page (1 comment)

Friday, 12 June 2009

What to Look For in a HTTP Proxy/Cache

Part of my job is maintaining Yahoo!’s build of Squid and supporting its users, which use it to serve everything from the internal Web services that make sites go to serving Flickr’s images. In that process, I often am...

this entry’s page (3 comments)

Friday, 5 June 2009

Opera Turbo

HTTP performance is a hot topic these days, so it’s interesting that Opera has announced a “turbo” feature in Opera 10 Beta; Ever felt a Web site was loading slowly? Do you think it will happen again? Think again:...

this entry’s page (20 comments)

Friday, 29 May 2009

Most Revealing Google Wave Comment

Everybody’s atwitter (yeah, sue me) about the Google Wave developer preview. Lots of new stuff there, but for me the most revealing comment, almost a throwaway, was here: Did we mention we use Squid? In other words, Google’s hot...

this entry’s page (7 comments)

Tuesday, 14 April 2009

Counting the ways that rev="canonical" hurts the Web

I had a lovely holiday weekend in Canberra with the family, without Web access. Perhaps I’ll blog about that soon — Canberra being in my opinion one of the nicest overlooked cities in the world — but that will...

this entry’s page (30 comments)

Tuesday, 24 February 2009

Caching When You Least Expect it

There’s a rule of thumb about when a HTTP response can be cached; the Caching Tutorial says: If the response’s headers tell the cache not to keep it, it won’t. If the request is authenticated or secure, it won’t...

this entry’s page (6 comments)

Wednesday, 18 February 2009

Stop it with the X- Already!

Sometimes, it seems like every time somebody has a great idea for a new HTTP header, media type, or pretty much any other protocol element, they do the same thing. Rather than trying to figure out how to fit...

this entry’s page (19 comments)

Friday, 21 November 2008

OAuth in Minneapolis

There are lots of new “Web 2.0” specs emerging — many beginning with “o” — that are both exciting and concerning. Exciting because the Web is still evolving and still being applied to new problems, but concerning because the...

this entry’s page

Monday, 27 October 2008

Dev-Friendly Web Caching

Ryan Tomayko announces Rack::Cache, a HTTP cache for Ruby’s generic Web API; The basic goal is standards-based HTTP caching that scales down to the early stages of a project, development environments, light to medium trafficked sites, stuff like that....

this entry’s page (4 comments)

Thursday, 16 October 2008

/site-meta

Metadata discovery is a nagging problem that’s been hanging around the Web for a while. There have been a few stabs at this problem (including at least one by yours truly), but no real progress. This is both unfortunate...

this entry’s page (17 comments)

Friday, 4 July 2008

The WS-Empire Strikes Back... feebly

Here’s a gem on a little-used mailing list: As most of you know, over the last several years fairly good progress has been made on standardizing Web services. Many Web services specifications have, in fact, been standardized in W3C...

this entry’s page (9 comments)

Thursday, 20 March 2008

Moving Beyond Methods in REST

Having complained before about the sad state of HTTP APIs, I’m somewhat happy to say that people seem to be getting it, producing more capable server-side and client-side tools for exposing the full range of the protocol; some frameworks...

this entry’s page (11 comments)

Monday, 3 March 2008

DAV WTF?

Not many people that I know outside of IETF circles realise that a new *DAV effort has started up; CardDAV. An address book access protocol leveraging the vCard data format. The Internet-draft draft-daboo-carddav will be the starting point. The...

this entry’s page (4 comments)

Sunday, 17 February 2008

POST and PATCH

It’s 7am, I’m sitting in the Auckland Koru Club on my way home and reading the minor kerfuffle regarding PATCH with interest. For me, the critical difference between PATCH and POST is generality; PATCH is a generic method (as...

this entry’s page (2 comments)

Wednesday, 6 February 2008

Another Kind of HTTP Negotiation

Here’s one that I’ve been wondering about for a while, for the LazyWeb (HTTP Geek Edition); PUTs and POSTs can result in the creation of new resources, or changes to the state of existing ones. The response to both...

this entry’s page (25 comments)

Monday, 21 January 2008

Watching WADL (and other rambling thoughts)

I’m following the discussion of RESTful Web description in general, and WADL in particular, with both difficulty and interest (see Dare, Patrick and Joe’s thoughts for a nice contrast). Difficulty because there’s so much of it, and it’s hard...

this entry’s page (1 comment)

Friday, 4 January 2008

Cache Channels

The stale-while-revalidate and stale-if-error extensions aren’t the only fiddling we’ve been doing with the HTTP caching model. Now that Squid 2.7 is starting to see daylight, I can explain about a much more ambitious project — Cache Channels. In...

this entry’s page (4 comments)

Wednesday, 12 December 2007

Two HTTP Caching Extensions

We use caching extensively inside Yahoo! to improve scalability, latency and availability for back-end HTTP services, as I’ve discussed before. However, there are a few situations where the plain vanilla HTTP caching model doesn’t quite do the trick. Rather...

this entry’s page (16 comments)

Sunday, 9 December 2007

Why Revise HTTP?

I haven’t talked about it here much, but I’ve spent a fair amount of time over the last year and a half working with people in the IETF to get RFC2616 — the HTTP specification — revised. That effort...

this entry’s page (9 comments)

Friday, 2 November 2007

WADL Documentation XSLT Updated

I've updated the WADL documentation stylesheet, primarily to; Fix a bug with finding and displaying XML Schema Make it compatible with xsltproc (and hopefully most other XSLT1.0 processors that understand EXSLT node-set) Generate valid XHTML The hard part was...

this entry’s page

Saturday, 8 September 2007

5005

Feed Paging and Archiving (nee Feed History) has finally made it to a standards-track RFC. For many non-traditional (read: non-blog) applications of Atom, I think archived feeds in particular are going to be vital. I’m already using it in...

this entry’s page (3 comments)

Tuesday, 7 August 2007

ETags, ETags, ETags

I’ve been hoping to avoid this, but ETags seem to be popping up more and more often recently. For whatever reason, people latch onto them as a litmus test for RESTfulness, as the defining factor of HTTP’s caching model,...

this entry’s page (8 comments)

Saturday, 28 July 2007

URI Templates Redux

URI Templates -01 is now an Internet-Draft. After sitting on the spec for a while and trying to figure out an elegant solution to the encoding problem, we decided to take the simple route and see how it sticks....

this entry’s page (5 comments)

Wednesday, 20 June 2007

The State of Proxy Caching

A while back I wrote up the state of browser caching, after writing a quick-and-dirty XHR-based test page, with the idea that if people know how their content is handled by common implementations, they’d be able to trust caches...

this entry’s page (13 comments)

Wednesday, 13 June 2007

Safari 3: Protecting Client-Side State

It's a little thing, but I'm very pleased to see that Safari 3 will check with you before you discard a page where you've entered data on a form; A nice step forward....

this entry’s page (4 comments)

Tuesday, 1 May 2007

httperf rev

Martin Arlitt makes an exciting announcement; It is my pleasure to announce two new versions of httperf: 0.8.1 and 0.9.0. version 0.8.1 fixes the known bugs in version 0.8, which was released almost 7 years ago. The primary new...

this entry’s page

Sunday, 29 April 2007

Squid is My Service Bus

The QCon presentation (slides) was ostensibly about how we use HTTP for services within Yahoo’s Media Group. When I started thinking about the talk, however, I quickly concluded that everyone’s heard enough about the high-level benefits of HTTP and...

this entry’s page (6 comments)

Thursday, 5 April 2007

WWW2007 Developers’ Track

We’ve announced the program for this years’ Developers’ Track, and I’m very excited about the lineup. For example, Ryan Boyd from Google will be presenting about GData right before Pasha Sadri talks about Yahoo! Pipes. These are two cutting-edge...

this entry’s page

Tuesday, 27 February 2007

REST Issues, Real and Imagined

I think that most of the debate about REST focuses on the wrong things, leading developers down the garden path at the expense of their productivity and the success of their projects. Time and time again, I’ve seen folks...

this entry’s page (14 comments)

Wednesday, 7 February 2007

Pipes!

Yahoo! (finally!) released Pipes as a beta today; congrats to the very talented team that put this together. Niall gives the geeks-eye view, and to be clear, this is not going to be the next great consumer Web site;...

this entry’s page (8 comments)

Wednesday, 7 February 2007

Developers, Developers, Developers

A reminder: proposals for the Developers’ Track at WWW2007 should be in by February 16th. We’re looking for Web-focused presentations, demos and tutorials for and by developers. I’m particularly interested in seeing what’s happening in Syndication, HTTP, XML, and...

this entry’s page

Monday, 4 December 2006

SOA Jumps Shark

Uche calls it; So the SOA wars are heating up. More and more smart people are pointing out that the emperor has no clothes; but stakes is still crazy high. Some folks haven’t yet made all their money from...

this entry’s page (2 comments)

Thursday, 30 November 2006

Schema for JSON

One of the perceived deficiencies of JSON is that it doesn’t have a schema language. I say “perceived” because the problems that a schema language brings often outweigh the benefits; after all, look at the mess that XML Schema...

this entry’s page (12 comments)

Friday, 27 October 2006

Friday Fun: I Hate Cookies

There are plenty of reasons to hate HTTP Cookies, but there’s one thing that especially annoys me; their syntax. Specifically, the Netscape spec allowed an “expires” field that contains the date the cookie should be discarded; Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/;...

this entry’s page (8 comments)

Thursday, 19 October 2006

Thoughts on Declarative Ajax

Dave Johnson writes up a nice summary of the issues of adding new elements to HTML for declarative Ajax, something that I ran into when doing HInclude. Basically, IE doesn’t give you access to any non-HTML element that’s not...

this entry’s page (7 comments)

Tuesday, 17 October 2006

Wanted: HTTP Yahoo!s

My team at Yahoo! is looking for a mid-level developer (5-10 years experience) to help build our HTTP/REST toolkit, among other things. The job is mostly coding Perl and PHP, with some C or C++ skills desirable. There’s also...

this entry’s page

Friday, 13 October 2006

Does the Enterprise (Vendor) Get the Web?

A couple of interesting things have happened recently; first, Jonathan Marsh has a new job; WSO2 is a year-old startup which provides support services around Apache’s Axis 2 Web services application server. The company’s CEO, Sanjiva Weerawarana, on Saturday...

this entry’s page (3 comments)

Wednesday, 4 October 2006

URI Templating, the Spec

As mentioned a while back, there are a variety of places where it would be useful to be able to describe the structure of a URI, rather than just convey a URI itself. I took a stab at this...

this entry’s page (8 comments)

Sunday, 1 October 2006

More JavaScript Updates

Hot on the heels of the last batch, Stefan pointed me to Jesse Skinner’s addDOMLoadEvent, which seems to avoid the problems I found earlier (you know you’re in for some debugging when you’re cutting-and-pasting code from blog comments!). As...

this entry’s page

Thursday, 28 September 2006

Javascript Updates

I’ve updated the url_template.js and json_form.js libraries to fix some bugs, to make the demo I gave at XTech run more smoothly. It should work well on Safari, Mozilla and IE6 (despite some glitches at a showing inside Y!...

this entry’s page (3 comments)

Saturday, 16 September 2006

Surfing the Barcoded Web

Apple’s shipping an iSight camera in just about everything these days, and one of the coolest apps to use it is Delicious Library. If you follow that to its logical conclusion, everything should be barcode-enabled, by Web-enabling it. For...

this entry’s page (4 comments)

Monday, 21 August 2006

Caching Performance Notes

There have been some interesting developments in Web caching lately, from a performance perspective; event loops are becoming mainstream, and there are lots of new contenders on the scene. Fortuitously, I’ve been benchmarking proxies with an eye towards the...

this entry’s page (15 comments)

Friday, 18 August 2006

Un tutoriel de la mise en cache

Many thanks to J.J. Solari for translating the Caching Tutorial to French!...

this entry’s page

Monday, 14 August 2006

Putting the Web back in Web 2.0

Timbl has this great term “Webizing” that he uses to talk about giving existing systems the benefits of the Web architecture. Despite the first part of “Web 2.0”, I think AJAX is in severe need of some serious Webizing....

this entry’s page (2 comments)

Friday, 30 June 2006

Friday Fun: Percent Encoding

If you boil down the BNF in both RFC2396 and RFC3986, path segments can contain the following characters without percent-encoding them: ALPHA DIGIT ! $ & ' ( ) * + , - . : ; = @ _ ~...

this entry’s page (12 comments)

Saturday, 24 June 2006

Welcome, Hugo!

Hugo has finally blogged the big news. He’s left one of the coolest jobs in the world — working for the W3C — to come to another one of ‘em, working for Yahoo. I’m really looking forward to continuing...

this entry’s page

Thursday, 22 June 2006

Bringing Back the Link - With a Twist

Recently, there’s been a resurgence for the Link element in HTML; everything from Microformats to Atom autodiscovery is using it. This isn’t surprising; as machines start processing Web documents more, it’s necessary to use hyperlinks — the foundation of...

this entry’s page (8 comments)

Tuesday, 20 June 2006

Microsoft's RESTful Robots

A friend (who shall remain anonymous) pointed me to Microsoft’s announcement today regarding their foray into robotics, of all things. My eyes glazed over until they rested upon the Microsoft Robotics Application Model; The term “REST” was originated by...

this entry’s page (13 comments)

Friday, 9 June 2006

Friday Fun: Feed Authentication with Cookies

See if your aggregator can subscribe to this feed (username/password: test/test) and post the results in comments.While you’re there, it would be interesting to know what happens if you shut down / log out of your aggregator, get back...

this entry’s page (22 comments)

Thursday, 25 May 2006

Web Services are Dead, Long Live Web Services

When I joined Yahoo, one of the biggest adjustments I had to make was to their use of “Web Services”. There, that phrase means any kind of machine-to-machine communication using HTTP; SOAP isn’t assumed (or preferred). This is diametrically...

this entry’s page (10 comments)

Tuesday, 16 May 2006

Caching Web 2.0

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

this entry’s page (7 comments)

Thursday, 11 May 2006

The State of Browser Caching

Updated 2006-06-03 One of the big problems that Web developers have with HTTP caching is that they don’t know how the caches behave; while the specs say one thing, the actual behaviour of the cache often significantly deviates — usually...

this entry’s page (22 comments)

Thursday, 11 May 2006

Yaron Uncloaks!

Yaron publicly says what he’s doing at Microsoft (scroll down); I hear that HTTP stuff is pretty cool. If anyone cares you can peruse a bunch of blog entries on my website (www.goland.org) where I walk through a number...

this entry’s page (5 comments)

Wednesday, 10 May 2006

Vendor-pires

Anne-Thomas Manes extolls the virtues of WS-*; The single, most important feature that inspires my enthusiasm about WS-* is that it has universal support from all the major vendors. Ah, there we are; major vendors. What she’s basically saying...

this entry’s page (18 comments)

Sunday, 23 April 2006

XTech

It’s official; I’ve got a last-minute slot at XTech, talking about all things Web caching....

this entry’s page (2 comments)

Thursday, 20 April 2006

DOM vs. Web

Back at the W3C Technical Plenary, I argued that Working Groups need to concentrate on making more Web-friendly specifications. Here’s an example of one such lapse causing security problems on today’s Web. Safety in HTTP HTTP methods have a...

this entry’s page (24 comments)

Thursday, 13 April 2006

Bug Syncronicity

I’ve had a lyric running through my head for the last day or so, thanks to a couple of bugs. I am thinking it’s a sign that the freckles / In our eyes are mirror images and when / We...

this entry’s page (3 comments)

Friday, 7 April 2006

Are Namespaces (and mU) Necessary?

It’s become axiomatic in some circles — especially in WS-* land, as well as in many other uses of XML — that the preferred (or only) means of offering extensibility is through URI-based namespaces, along with a flag to...

this entry’s page (13 comments)

Thursday, 6 April 2006

What good is SOAP to HTTP?

I’m a little confused by Mark Baker’s stance regarding SOAP; he seems to encourage the Web services world to use SOAP on top of HTTP in a fashion compatible with HTTP. As I asked Chris Ferris recently, what’s the...

this entry’s page (3 comments)

Monday, 20 March 2006

Don’s False Choice

True to form, Don’s using his witty charm and good looks (such as they are ;) to shape discussion of a topic… in this case, REST, where he splits the RESTifarian world into two; “hi” and “lo.” To get...

this entry’s page (9 comments)

Thursday, 16 March 2006

Web Authentication

There’s some excitement out there about “Cookie-less HTTP Authentication.” While it’s tempting to say that cookies are evil (the fru-it of the dev-il), using them for authentication isn’t actually that bad, from a REST standpoint; the main loss is...

this entry’s page (11 comments)

Wednesday, 15 March 2006

WS-Transfer, WAKA and the Web

Microsoft and friends (of the keep your enemy closer variety, I suspect) have submitted WS-Transfer to the W3C. I found the Team comment interesting; e.g., WS-Transfer can therefore be seen as an underlying protocol-independent version of HTTP, i.e. bringing...

this entry’s page (10 comments)

Wednesday, 1 March 2006

Feed History Redux

Over the weekend, I submitted a new draft of Feed History. The big (and hopefully, last) change this time is the use of the “previous” and “subscription” Atom link relations, rather than extension elements. Of course, just because they’re...

this entry’s page

Saturday, 18 February 2006

Invalidating Caches with POST

Have you ever posted a comment to a blog, found it missing, so you re-posted it, only to find two entries? Annoying, huh? Aaron pinged me the other day with this problem, and I responded that the Right way...

this entry’s page (12 comments)

Tuesday, 7 February 2006

Offline

Interesting; there are not one but two sessions at the upcoming ETech about taking Web applications offline. Given the current bent of O’Reilly conferences — speed dating for VCs and their willing prey — this is a pretty sure...

this entry’s page (6 comments)

Monday, 23 January 2006

How Web-Ready is XMLHttpRequest?

I’ve been playing around with some ideas that use XMLHttpRequest recently, but I keep on bumping up against implementation inconsistencies on IE vs. Safari vs. Opera vs. Mozilla. Although the interface exposed is pretty much the same, what it...

this entry’s page (29 comments)

Wednesday, 11 January 2006

Safari and Content Sniffing

It took two years, but Apple has finally taken steps to limit Safari’s content-sniffing ways; Safari now displays certain documents that have text/plain headers as plain text rather than treating them as HTML. — About the Mac OS X...

this entry’s page (1 comment)

Monday, 9 January 2006

Making headway on OPTIONS

On the heels of mod_cgi, PHP now does the right thing (at least in 5.1) when setting the Allow header. mod_dav is still broken, though. Backstory here....

this entry’s page (1 comment)

Saturday, 24 December 2005

RFC 4229: HTTP Header Field Registrations

The useful end of RFC 3864 (at least regarding HTTP) is finally* here. When you need to know where a particular header is defined there’s now one place to do it; IANA’s Message header registry and repository have been...

this entry’s page

Saturday, 26 November 2005

Leveraging the Web: Caching

The first in an occasional series about the real-world benefits of REST and the Web architecture, as applied to HTTP. I used to work for a fairly huge company as a Web/Internet guru. One day, I got sucked into...

this entry’s page (6 comments)

Monday, 7 November 2005

REST vs..?

More and more people are getting turned on to the advantages of using REST as a higher-level abstraction for networked applications, often comparing it favourably to SOAP and Web services. However, as many have pointed out, this is a...

this entry’s page (12 comments)

Sunday, 30 October 2005

Frameworks

Stumbled across this, from Ian Bicking; My problem with a lot of MVC web frameworks is that they are really a way of codifying one developers internal thinking about a web application, and they don’t map well when they are...

this entry’s page (4 comments)

Wednesday, 26 October 2005

Calendar <-> Feed?

Does anybody know of a program or service that will look at a calendar file (e.g., vCalendar, iCalendar, hCalendar) and publish the entries on it as an RSS feed, where each entry in the feed has a link to that...

this entry’s page (6 comments)

Sunday, 23 October 2005

Emulating W3C ,tools with mod_rewrite

I don't know if this has already been done (it's not exactly rocket science), but for the benefit of those who want to emulate the W3C's cool ,tools functions with mod_rewrite; # tools RewriteRule ^(.*),validate http://validator.w3.org/check?uri=http://%{HTTP_HOST}/$1 [L,R] RewriteRule ^(.*),checklink http://validator.w3.org/checklink?uri=http://%{HTTP_HOST}/$1...

this entry’s page (3 comments)

Saturday, 22 October 2005

Why Just GET and POST?

Why is it that Web browsers — Amaya excluded — don’t support PUT and DELETE? After all, if there are enough VCs foolish enough to part with their money for something like Flock, surely we could at least support all...

this entry’s page (10 comments)

Wednesday, 19 October 2005

OPTIONS Getting Better

Roy Fielding has just closed a bug that’s been around since 1996, and which I’ve previously lamented here; The block has now been deleted from all active branches of httpd (1.3.35, 2.0.56, 2.1+). Thanks for sending in the more complicated...

this entry’s page (3 comments)

Tuesday, 18 October 2005

XSLT for the Rest of the Web

I’ve raved before about how useful the XSLT document() function is, once you get used to it. However, the stars have to be aligned just so to use it; the Web site can’t use cookies for anything important, and the...

this entry’s page (12 comments)

Wednesday, 5 October 2005

2.0

Does anybody else chortle quietly when they see “2.0-this” and “2.0-that”? It’s getting absurd; first we had “Web 2.0” (never mind that this term has been used for years in different ways, and that what they’re referring to is...

this entry’s page (3 comments)

Monday, 5 September 2005

Feed History -04

Feed History draft -04 is out, with the only major change being the replacement of fh:stateful with fh:incremental, with corresponding changes throughout the document, to make the concepts a bit clearer. This revision also makes cardinality, relative URIs and...

this entry’s page (1 comment)

Thursday, 1 September 2005

RSS Tutorial for Content Publishers and Webmasters

I took a pass at a revision of the RSS Tutorial for Content Publishers and Webmasters on the train this morning, as I realised it was dreadfully out of date. It now includes Atom, and RSS 2.0, rather than...

this entry’s page (2 comments)

Monday, 15 August 2005

Putting History in Your Feed

I’ve had a few e-mails asking how I got this site’s RSS feed to include its history, so here are the instructions for doing it in Moveable Type (the software that I use to manage this site). If you...

this entry’s page (1 comment)

Monday, 15 August 2005

Feed History -03

Draft -03 of Feed History: Enabling Stateful Syndication is now available. Significant changes include: Added fh:archive element, to indicate that an entry is an archive Allow subscription feed to omit fh:stateful if fh:prev is present Clarified that fh doesn’t...

this entry’s page

Saturday, 13 August 2005

Adding Semantics to Excel with Microformats and GRDDL

When I worked in the financial industry, I quickly noticed that Excel spreadsheets contain the bulk of the data in the enterprise. It may make IT execs tear their hair out, but having the data nearby and ready for...

this entry’s page (1 comment)

Wednesday, 10 August 2005

Separating the Data Model from its Serialisation

For some time, I’ve noticed that people defining XML formats spend an inordinate amount of time talking about the structure of the format. This is especially apparent in standards working groups, where hours — no, days — can be...

this entry’s page (11 comments)

Monday, 8 August 2005

HTTP Performance (again)

Some folks at IONA have written a paper entitled Where HTTP Fails SOAP. I had a chance to look at this before I got it published, and their conclusions make a lot of sense — if you accept the...

this entry’s page (1 comment)

Saturday, 16 July 2005

Making Syndication Enterprise-Grade

After more than five years, syndication is maturing rapidly. It’s being used for more than blogging — whether it be stock quotes, system logs, or order lists — and even blogging will change in nature as it gets more...

this entry’s page (6 comments)

Friday, 15 July 2005

Don’t use the ‘feed’ URI Scheme

It’s been covered before elsewhere, but just a friendly reminder: ‘feed’ URIs are bad for the Web, as are any that are used solely for dispatch (e.g., ‘itms’, ‘pcast’). I’m looking at you, Apple. Interestingly, Apple also supports doing...

this entry’s page (3 comments)

Saturday, 9 July 2005

Never Mind the Corporate Blogs; Here’s the Wiki

While a lot of companies are exploring blogs as a means of building communities, Intuit* (makers of Quicken, TurboTax, etc.) has skipped directly to the next logical step; using Wikis. TaxAlmanac is a Wiki about taxes, for tax professionals;...

this entry’s page (1 comment)

Friday, 8 July 2005

One Description to Bind them All? Nah.

You can describe just about anything with sufficient precision in plain English, given enough words. In practice, this doesn’t happen; specialised fields — whether science, finance or art — develop specialised jargon as a shorthand for concepts that are...

this entry’s page

Tuesday, 24 May 2005

Web Description at the W3C

The W3C has just started a mailing list for discussion of Web description formats; This mailing list is dedicated to discussion of Web description languages based on URI/IRI and HTTP, and aligned with the Web and REST Architecture. Unlike...

this entry’s page (2 comments)

Sunday, 22 May 2005

Prefetching (again)

There’s been quite a kerfuffle over Google’s Web Accelerator, because it prefetches Web content. It’s amusing to see these issues recycle over time; in the late nineties, prefetching was one of the biggest areas of research in Web caching....

this entry’s page (1 comment)

Wednesday, 18 May 2005

WADLing towards Web Description

Marc Hadley has released WADL in the wild, and I’m intrigued; based on a first look, I’d say it’s the most promising Web (as opposed to Web Services) description language yet. Why? First of all, it’s very resource-oriented; you...

this entry’s page (5 comments)

Thursday, 12 May 2005

Google's Cache-Control Extensions

I happened to look at the HTTP headers returned from Google News just now (what can I say, I’m a HTTP geek), and I noticed something unusual; Last login: Thu May 12 16:52:59 on console Welcome to Darwin! mnot-laptop:~>...

this entry’s page (5 comments)

Monday, 9 May 2005

Greasemonkey and the Web

There’s a lot of cool apps emerging for GreaseMonkey (and GreaseMonkIE and PithHelmet, for IE and Safari respectively). It seems like these extensions have a love/hate relationship with the Web, philosophically. On the one hand (with L O V...

this entry’s page (20 comments)

Friday, 29 April 2005

Questions Leading to a Web Description Format

A while back, I published a series of entries (1,2,3,4) about would-be Web Description Formats, with the intent of figuring out which (if any) is suitable, or whether a new one is required. I’d like to keep this moving,...

this entry’s page (6 comments)

Sunday, 24 April 2005

Personalised RSS and Cookie Sharing

Should cookies be shared between your RSS aggregator and your Web browser? If they were, sites would be able to automatically personalise the feeds you subscribe to; would people be interested in that, or see it as an intrusion...

this entry’s page (6 comments)

Sunday, 3 April 2005

A Call to OPTIONS

Web metadata discovery is not a new topic, and one on which the final word has not been spoken. However, one of the most basic means of discovering something about a resource, the HTTP OPTIONS method, is not widely...

this entry’s page (8 comments)

Monday, 21 March 2005

Nevermore

A while back, I wrote up a description of a pattern for avoiding messages like “click submit only once.” I didn’t do much after that, because I’ve been a bit busy, and because I wanted to do some implementation...

this entry’s page (6 comments)

Tuesday, 22 February 2005

document(Web)

I love the XSLT document function. With it, you can access the whole Web from a stylesheet; this gives a lot of flexibility, in the right situation. For example, my local library’s online system is based upon iPac (now...

this entry’s page (2 comments)

Monday, 7 February 2005

The Map is Not the Territory

Werner makes an excellent point; [W]e need to continue to take care that we do not consider The Model to be The Truth. The web based internet is a massive organic process that is similar to Nature, and we...

this entry’s page (3 comments)

Wednesday, 19 January 2005

On How Google Fixed Comment Spam

More than a year after my modest suggestion, Google takes a step to fix comment spam. Hopefully, other people who re-publish Web content (like mailing list archives) will start doing this as well. Perhaps the most interesting thing about...

this entry’s page (1 comment)

Friday, 17 December 2004

Tufte would be Proud

The Australian Bureau of Statistics has released an SVG-based "animated population pyramid" that very nicely visualises the change in that country's population over time.

this entry’s page (2 comments)

Wednesday, 15 December 2004

text/python?

I’m thinking about whether it would be a good idea to have a media type for Python source files, call it “text/python.” The main benefit that I see to doing this is the definition of a fragment identifier syntax;...

this entry’s page (9 comments)

Sunday, 10 October 2004

Why POST is Special

In a recent post, Don gave his take on the enlightening nature of WS-Transfer; Honestly, WS-Transfer has been in the oven for quite a while. It’s been interesting to see people’s reaction to it. Stage 1. What good is...

this entry’s page (11 comments)

Monday, 27 September 2004

The ‘Web’ in Web Services

I was very interested to see the reaction that people had to WS-Transfer over the last few days. While the SOAP Resource Representation Header had opprobrium heaped upon it (""), Transfer passed by with nothing more than a few nodding heads and people saying "aha." In my view, WS-Transfer deserves a lot more of that criticism; if anything, the Resource Representation Header tries to supplant MIME, not HTTP.

this entry’s page (2 comments)

Wednesday, 8 September 2004

HTTP Header Registries

An update to the Internet-Draft that provides initial values for the HTTP Header Message Registries is now available.

this entry’s page (2 comments)

Thursday, 26 August 2004

HTTP Authentication and Forms

It's no secret that HTTP authentication isn't used as often as it should be.

this entry’s page (22 comments)

Saturday, 31 July 2004

The Whole Web in a Python Dictionary

A few days ago I blogged a straw-man API for client-side HTTP based on dictionaries. This turns out to be well-aligned with a project I’ve had on the back burner for a while; coming up with some Python APIs for...

this entry’s page (8 comments)

Monday, 26 July 2004

Dictionary as API?

From the Daily Python URL comes another noteworthy API for XML; XMLFragment. I haven’t tried it yet (it doesn’t appear to be separately available, hint, hint), but I like the look of it. There are two interesting things going on...

this entry’s page (6 comments)

Sunday, 18 July 2004

Web-izing The Finder

Timbl has talked about Web-izing databases and languages; what about operating systems? Despite Microsoft’s legal troubles brought about trying to integrate the browser into Windows, it’s a good idea. Here’s one for the LazyWeb: create a Mac OS X Contextual...

this entry’s page (2 comments)

Thursday, 1 July 2004

Internet Mapping For the Little Guy

When Tim O’Reilly gave his keynote at eWorld this year, one of his major points was that Internet-based mapping (e.g., Yahoo maps, Mapquest) had failed to take off, despite their obvious utility, because they were walled gardens; unlike eBay and...

this entry’s page (2 comments)

Wednesday, 16 June 2004

What?

Check out the Web Hypertext Application Technology Working Group; it looks like our last, best hope for extending the browser platform to grow the Web....

this entry’s page

Monday, 14 June 2004

Use Cases for Web Description Formats

One thing about Web description formats that hasn’t seen much discussion yet is how people intend to use them. The WSDL Working Group has a Usage Scenarios document and a Requirements document, but unfortunately they only talk about the kinds...

this entry’s page

Saturday, 5 June 2004

Extreme URL Scraping and Debugging

Because Web sites often don’t make information available to us in the way we’d like, we have to bring the mountain to Mohammed and scrape screens. I’ve played around with this in the past with xpath2rss, a scraping tool that...

this entry’s page (5 comments)

Sunday, 30 May 2004

Ubiquitious Fragment Identifiers

Tim Bray is trying out “purple number signs” on his Web site to make fragment identifiers ubiquitous and easy to find. This site has something along similar lines, through this CSS: [id]:hover:after { content: " #" attr(id) " "; font-size:...

this entry’s page (2 comments)

Friday, 28 May 2004

WebDAV Access Control Protocol

RFC 3744 has been published: This document specifies a set of methods, headers, message bodies, properties, and reports that define Access Control extensions to the WebDAV Distributed Authoring Protocol. This protocol permits a client to read and modify access control...

this entry’s page

Monday, 3 May 2004

Go PATCH Go

It looks like the HTTP PATCH method proposal might be based on Delta Encoding, which is IMO one of the cooler and lesser-known HTTP technologies. I've heard of a few implementations of delta, including one by Patrick McManus a long...

this entry’s page

Tuesday, 27 April 2004

Using WebDAV as a Description Format for REST

In the past, I’ve talked about reusing WSDL as a format for describing Web resources, as well as coming up with a bespoke format. One path that I’ve overlooked so far is reusing WebDAV to describe Web resources. The WebDAV...

this entry’s page (6 comments)

Monday, 19 April 2004

Asynchrony: There Is No Spoon

One of the things that people find compelling about Web services is its promise of asynchrony. “HTTP is only request/response, and therefore synchronous; it’s terrible for long-lived business processes, where the server needs to contact the client at some arbitrary...

this entry’s page (1 comment)

Friday, 16 April 2004

Describing Generative Identifiers in WSDL

To use WSDL to describe RESTful interactions, you need some way of accommodating generative resource identifiers. In a nutshell, this means some part of the URI is dynamic. For example, with HTTP I might describe an address book where someone...

this entry’s page

Sunday, 28 March 2004

Growing the Web

Ian Hickson is thinking about client-side technologies (scroll down a bit). Some of his ideas resonated; Sortable tree views and list views with rich formatting. Do a search on eBay, and you’ll find you have to hit the server whenever...

this entry’s page (2 comments)

Wednesday, 17 March 2004

Outage in the Web: Server Configuration

In an otherwise excellent article, Jon Udell blames the lack of one-click subscribe in syndication formats on lack of vision; How users will interact with the formats and APIs is left as an exercise for the implementer. But of course...

this entry’s page (11 comments)

Sunday, 15 February 2004

Caching Tutorial Update

I’ve published a revision of the Caching Tutorial for Web Authors and Webmasters, the first non-trivial edit in some time almost since I wrote it in 1998. That said, there aren’t any substantial changes; this is mostly tweaking and incorporation...

this entry’s page

Tuesday, 3 February 2004

What is NetKernel?

Just got some mail regarding the Cacheability Engine which led me to NetKernel; NetKernel is a Java-based virtual REST operating system for internet applications. NetKernel is a scalable microkernel which implements a modular REST abstraction in which all software components...

this entry’s page

Monday, 8 December 2003

Why Do Web Server APIs Suck So Much?

HTTP provides considerable benefits to Web applications that take advantage of it; everything from scalability (through caching), client-integrated authentication, automated redirection, multiple format support and lots more. I’ve been drafting some entries about how cool all of these things are;...

this entry’s page (13 comments)

Sunday, 7 December 2003

A Description Format for REST

Adam asks if there’s a description format for REST. I don’t know of any that have wide acceptance (and I think the hard-core RESTafarians will answer “REST is self-describing, that’s the point” ;) but I have been noodling on something...

this entry’s page (3 comments)

Saturday, 13 September 2003

Click Submit Only Once

I shudder when I see these words. Everyone I’ve asked has, at least once, gotten two orders of something online (personally, I’ve had the SonyEricsson store ship *three* duplicate orders); “Click Submit Only Once” is intended to stop that. The...

this entry’s page (9 comments)

Thursday, 21 August 2003

HTTP Performance

I've heard several people in the industry assert that HTTP fundamentally limits the performance of applications that use it; in other words, there's a considerable disadvantage to using it, and that therefore other protocols (usually proprietary or platform-specific systems that...

this entry’s page (1 comment)

Monday, 11 August 2003

Structured URIs

I just found a draft finding that the W3C TAG published about a month ago, regarding the use of metadata in URIs. This is very cool, and I especially like the emphasis on authorities’ ability to embed metadata in URIs....

this entry’s page (1 comment)

Monday, 4 August 2003

iDisk Offline

Marc Hadley points out that the version of iDisk in OSX Panther looks like it will enable offline functionality with caching; it also looks to do some synchronization. I'd really like to have a look at how they've done it....

this entry’s page

Tuesday, 29 July 2003

Subversion

Ted Leung points out that caching PUT (and other WebDAV methods) would suit Subversion - probably the most interesting WebDAV application under open development - quite well. The only thing he says that I disagree with (and it might just...

this entry’s page

Tuesday, 29 July 2003

httpRange-14

Mark Baker is the latest in a series to weigh in on the TAG issue regarding what a HTTP URI can identify. I haven't followed the debate closely, but it appears that the arguments haven't changed substantively. Another way of...

this entry’s page (1 comment)

Saturday, 26 July 2003

Caching PUT

If we WebDAV-enable Web applications, people will be able to interact with them like filesystems. To blog something, you'd be able to write an entry in the text editor of your choice, and then drag-and-drop them into what MSFT has...

this entry’s page (2 comments)

Saturday, 26 July 2003

Blogging with WebDAV

One of my personal background tasks in the last couple of months has been finding sample applications to excercise Tarawa with. Although my load is high and I've only got a single processor - me - I'm still trying to...

this entry’s page

Friday, 25 July 2003

Profiling HTTP

Mark Pilgrim is starting to think about issues surrounding the transport, transfer and general moving around of the Format Formerly Known as Echo (nee Pie). This feels suspiciously like a profile of HTTP. We tried that a little bit in...

this entry’s page (3 comments)

Saturday, 28 June 2003

Caching is often enough

I feel compelled to respond to Norm Walsh's thoughts on caching. It's important to distinguish between the capabilities of a specific product (such as WWWoffle) and the technology that it implements (caching). I would agree that the general state of...

this entry’s page

Tuesday, 17 June 2003

Spot the difference...

What does this interesting new, ad hoc work have to do with this interesting , new standards work and this interesting, new-ish effort by GK?...

this entry’s page (1 comment)

Thursday, 12 June 2003

Web-izing the Palm Pilot

Having a network-enabled (even if only through BlueTooth and infrared) is a heady experience; the ability to access the Web and sync applications from anywhere - really anywhere - is quite liberating. However, after playing with the new toy for...

this entry’s page (1 comment)

Thursday, 29 May 2003

XCAP

Jonathan Rosenberg published a new Internet-Draft, XCAP, to the SIMPLE Working Group in the IETF. Here's the skinny: Abstract This specification defines the Extensible Markup Language (XML) Configuration Access Protocol (XCAP). XCAP allows a client to read, write and modify...

this entry’s page

Thursday, 8 May 2003

Conneg based on XML Dialect

I know at least one person who will think that this is a good idea. Anybody else? I'd looove to do this work......

this entry’s page (3 comments)

Monday, 5 May 2003

Tarawa

I've finally gotten sick enough of a project that I've been working on for waaaay too long to release it to the unsuspecting^H^H^H general public. Tarawa is, in short, a HTTP server API that tries to apply some of the...

this entry’s page

Saturday, 26 April 2003

It's alive

For those who have been helping, it's alive, has been for almost a week, but I still want to do a bit more documentation, hunt down a few bugs, and get some more unit tests down. Unfortunately, I need more...

this entry’s page (1 comment)

Thursday, 24 April 2003

ETags

It's not necessary to lament the lack of ETags on generated Web pages; cgi_buffer automagically generates and validates them for Perl, Python and PHP scripts. Yes, I keep on shamelessly plugging this one, but the question keeps on coming up......

this entry’s page (2 comments)

Tuesday, 8 April 2003

HTTP header sniffing

LiveHTTPHeaders for Mozilla is the best HTTP header sniffer I've seen yet; up till now, I've been using WebTee, but for *most* purposes, this is much better. Enjoy....

this entry’s page

Thursday, 27 March 2003

Macrosoft, Part II

Dave seems excited by Macromedia's announcement. I'm less enthusiastic. Not only does it lock you into one vendor, but their product, well, sucks. Anitra loaded up Flash MX on the trusty eMac the other week, to refamiliarize herself before teaching...

this entry’s page

Tuesday, 25 March 2003

RSS standardization (again)

Jorgen hits a subject that's of great interest to me; RSS standardization. I originally started the Syndication list to get RSS moving towards some sort of recognized standard; more recently, my effort to register an RSS media type was stalled...

this entry’s page

Sunday, 26 January 2003

Blogging Zipf

I always wondered why so many people had their blogs' comments and even trackback indicators turned off. Go ahead and surf around; it's a rare blog indeed, at least in my experience, that has these features visible for the world...

this entry’s page (3 comments)

Wednesday, 27 November 2002

Mozilla Prefetching

I'm extremely wary about the new prefetching feature in Mozilla. The Web caching community has tried this from about every angle, but the general consensus of professionals (with one notable exception) is that prefetching is a bad approach. For...

this entry’s page (4 comments)

Thursday, 12 September 2002

Macrosoft?

Jeremy Allaire talks about establishing a "rich client" platform because HTML is "stagnant." Two questions; will it be standards-based, and what about SVG? I'd really rather not have Macromedia succeed in its ambitions to be the next Microsoft......

this entry’s page