mark nottingham


RFC 9518 - What Can Internet Standards Do About Centralisation?

Tuesday, 19 December 2023

RFC 9518: Centralization, Decentralization, and Internet Standards has been published, after more than two years of review, discussion, and revision.

this entry’s page

What willwould a Chromium-only Web look like?

Wednesday, 22 June 2022

Most of the complexity and nuance of the Web is stuffed into browser engines. Even though they’re a huge burden to develop and maintain, the world is lucky enough to have three major ones, and they’re all Open Source.

this entry’s page

Yet More New HTTP Specs

Wednesday, 8 June 2022

The HTTP “core” documents were published on Monday, including a revision of HTTP semantics, caching, HTTP/1.1, HTTP/2, and the brand-new HTTP/3. However, that’s not all that the HTTP community has been up to.

this entry’s page

A New Definition of HTTP

Monday, 6 June 2022

Seven and a half years ago, I wrote that RFC2616 is dead, replaced by RFCs 7230-5.

this entry’s page

No news is... a sign of a stagnating Internet

Thursday, 18 February 2021

Today, Facebook shut off the news in Australia – all of it, and much more besides. For example, when I tried to post a link to this blog entry on Facebook, they responded:

this entry’s page

Ideal HTTP Performance

Friday, 22 April 2016

The implicit goal for Web performance is to reduce end-user perceived latency; to get the page in front of the user and interactive as soon as possible.

this entry’s page

Will there be a Distributed HTTP?

Tuesday, 18 August 2015

One of the things that came up at the HTTP Workshop was “distributed HTTP” — i.e., moving the Web from a client/server model to a more distributed one. This week, Brewster Khale (of fame) talked about similar thoughts on his blog and at CCC. If you haven’t seen that yet, I’d highly suggest watching the latter.

this entry’s page

HTTP/2 is Done

Wednesday, 18 February 2015

The IESG has formally approved the HTTP/2 and HPACK specifications, and they’re on their way to the RFC Editor, where they’ll soon be assigned RFC numbers, go through some editorial processes, and be published.

this entry’s page

Why Intermediation is Important

Saturday, 27 December 2014

A few months ago I went to the Internet Governance Forum, looking to understand more about the IGF and its attendees. One of the things I learned there was a different definition of “intermediary” — one that I think the standards community should pay close attention to.

this entry’s page

Python 2 and TLS SNI

Saturday, 27 December 2014

Python 2.7.9 was recently released, and that means that it supports TLS Server Name Indication.

this entry’s page

What is the Web?

Thursday, 4 December 2014

This post is mostly for folks who haven’t been following Web standards closely — especially IETF folks. If you have been, there’s probably not much new here (but feel free to poke holes!).

this entry’s page

RFC2616 is Dead

Saturday, 7 June 2014

Don’t use RFC2616. Delete it from your hard drives, bookmarks, and burn (or responsibly recycle) any copies that are printed out.

this entry’s page

Chrome and Stale-While-Revalidate

Sunday, 1 June 2014

Chrome is looking at adding support for RFC5861’s stale-while-revalidate, which is really cool. I wrote about the details of SwR when it first became an RFC, but its application to browsers is something that’s a new. Seems like a good time to answer a few potential questions.

this entry’s page

If You Can Read This, You're SNIing

Friday, 9 May 2014

When TLS was defined, it didn’t allow more than one hostname to be available on a single IP address / port pair, leading to “virtual hosting” issues; each Web site (for example) now requires a dedicated IP address.

this entry’s page

Trying out TLS for HTTP:// URLs

Monday, 17 March 2014

The IETF now considers “pervasive monitoring” to be an attack. As Snowden points out, one of the more effective ways to combat it is to use encryption everywhere you can, and “opportunistic encryption” keeps on coming up as one way to help that.

this entry’s page

Nine Things to Expect from HTTP/2

Thursday, 30 January 2014

HTTP/2 is getting close to being real, with lots of discussions and more implementations popping up every week. What does a new version of the Web’s protocol mean for you? Here are some early answers:

this entry’s page

Evolving HTTP APIs

Tuesday, 4 December 2012

One of the most vexing problems that still seems to be facing people when I talk to them about HTTP APIs is how to handle versioning and extensibility – i.e., how they evolve.

this entry’s page

Why PATCH is Good for Your HTTP API

Wednesday, 5 September 2012

A common problem for APIs is partial update; when the client wants to change just one part of a resource’s state. For example, imagine that you’ve got a JSON representation of your widget resource that looks like:

this entry’s page

HTTP in Vancouver

Saturday, 4 August 2012

The HTTPBIS Working Group is in a transitional phase; we’re rapidly finishing our revision of the HTTP/1.1 specification and just getting steam up on our next target, HTTP/2.0.

this entry’s page


Tuesday, 17 April 2012

Erik Wilde - otherwise known as dret - has published an Internet-Draft for a “profile” link relation type:

this entry’s page

User Personas for HTTP APIs

Saturday, 14 April 2012

When you’re designing HTTP APIs, you need to keep a lot of concerns in mind. Stealing a page from XP, let’s look at some possible personas and their user stories for HTTP-based APIs:

this entry’s page

JSON or XML: Just Decide

Friday, 13 April 2012

When people create HTTP APIs, one of the common decisions is about what format to use, usually revolving around “JSON or XML?”

this entry’s page

Linking in JSON

Friday, 25 November 2011

To be a full-fledged format on the Web, you need to support links – something sorely missing in JSON, which many have noticed lately.

this entry’s page

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

Friday, 21 October 2011

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.

this entry’s page

Thinking about Namespaces in JSON

Wednesday, 12 October 2011

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.

this entry’s page

RFC6266 and Content-Disposition

Friday, 2 September 2011

HTTPbis published RFC6266 a little while ago, but the work isn’t finished.

this entry’s page

Better Browser Caching

Sunday, 28 August 2011

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;

this entry’s page

Distributed Hungarian Notation doesn't Work

Wednesday, 24 August 2011

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.

this entry’s page

HTTP Pipelining Today

Friday, 5 August 2011

Last week, highlighted how mobile browsers use HTTP pipelining.

this entry’s page


Wednesday, 27 July 2011

FYI, I’ve implemented Content Security Policy on this site. If your’e a Mozilla user, please tell me if you have any problems.

this entry’s page

What Proxies Must Do

Monday, 11 July 2011

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”*.

this entry’s page

Fixing AppCache

Sunday, 19 June 2011

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

Linked Cache Invalidation

Friday, 27 May 2011

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.

this entry’s page

On HTTP Load Testing

Wednesday, 18 May 2011

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.

this entry’s page

HTTP POST: IETF Prague Edition

Monday, 4 April 2011

this entry’s page

Your REST worries have ended.

Tuesday, 22 March 2011

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

this entry’s page

Last Call: Content-Disposition

Tuesday, 1 March 2011

The IESG has received a request from the Hypertext Transfer Protocol Bis WG (httpbis) to consider the following document:

this entry’s page

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

Friday, 1 October 2010

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.

this entry’s page

Thou Shalt Use TLS?

Friday, 23 July 2010

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 in a new blog entry, but his summary is simple: “users want it.”

this entry’s page

Why Our New TV Doesn't Like the Web

Thursday, 3 June 2010

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.

this entry’s page

RFC5861: HTTP Stale Controls

Thursday, 6 May 2010

On a bit of a roll, RFC5861: HTTP Stale Controls has (finally) been published as an Informational RFC.

this entry’s page

Thoughts on Archiving HTTP

Wednesday, 5 May 2010

Steve Souders and others have been working for a while on HAR, a HTTP Archive format.

this entry’s page

RFC5785: Well-Known URIs

Wednesday, 7 April 2010

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 took it up after that.

this entry’s page

Caching-Tutorial für Webautoren und Webmaster

Wednesday, 10 March 2010

Thomas Hühn has graciously translated the caching tutorial into German. Thanks!

this entry’s page

Are Resource Packages a Good Idea?

Thursday, 18 February 2010

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.

this entry’s page

WS-REST (heh, heh)

Friday, 15 January 2010

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.

this entry’s page

HTTP + Politics = ?

Wednesday, 16 December 2009

Australia has apparently decided, through its elected leaders, to filter its own Internet connection.

this entry’s page

Will HTTP/2.0 Happen After All?

Friday, 13 November 2009

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.

this entry’s page

Traffic Server

Friday, 30 October 2009

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 of AOL, when AOL was still how most people accessed the Internet.

this entry’s page


Thursday, 13 August 2009

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.

this entry’s page

Come to the Stockholm IETF!

Friday, 3 July 2009

The Stockholm IETF meeting is shaping up to be an interesting one (and not just because it’s in such a beautiful city).

this entry’s page

The Resource Expert Droid

Thursday, 25 June 2009

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.

this entry’s page


Wednesday, 17 June 2009

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

this entry’s page

What to Look For in a HTTP Proxy/Cache

Friday, 12 June 2009

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.

this entry’s page

Opera Turbo

Friday, 5 June 2009

HTTP performance is a hot topic these days, so it’s interesting that Opera has announced a “turbo” feature in Opera 10 Beta;

this entry’s page

Most Revealing Google Wave Comment

Friday, 29 May 2009

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:

this entry’s page

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

Tuesday, 14 April 2009

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 have to wait. Going offline for a few days always brings a certain dread of what one’s inbox will hold when you get back, and this one was no exception.

this entry’s page

Caching When You Least Expect it

Tuesday, 24 February 2009

There’s a rule of thumb about when a HTTP response can be cached; the Caching Tutorial says:

this entry’s page

Stop it with the X- Already!

Wednesday, 18 February 2009

UPDATE: RFC6648 is now the official word on this topic.

this entry’s page

OAuth in Minneapolis

Friday, 21 November 2008

There are lots of new “Web 2.0” specs emerging — many beginning with “o” — that are both exciting and concerning.

this entry’s page

Dev-Friendly Web Caching

Monday, 27 October 2008

Ryan Tomayko announces Rack::Cache, a HTTP cache for Ruby’s generic Web API;

this entry’s page


Thursday, 16 October 2008

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 entry’s page

The WS-Empire Strikes Back... feebly

Friday, 4 July 2008

Here’s a gem on a little-used mailing list:

this entry’s page

Moving Beyond Methods in REST

Thursday, 20 March 2008

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 are even starting to align object models with resource models, where HTTP methods map to method calls on things with identity. Good stuff.

this entry’s page


Monday, 3 March 2008

Not many people that I know outside of IETF circles realise that a new *DAV effort has started up; CardDAV.

this entry’s page


Sunday, 17 February 2008

It’s 7am, I’m sitting in the Auckland Koru Club on my way home and reading the minor kerfuffle regarding PATCH with interest.

this entry’s page

Another Kind of HTTP Negotiation

Wednesday, 6 February 2008

Here’s one that I’ve been wondering about for a while, for the LazyWeb (HTTP Geek Edition);

this entry’s page

Watching WADL (and other rambling thoughts)

Monday, 21 January 2008

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

this entry’s page

Cache Channels

Friday, 4 January 2008

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.

this entry’s page

Two HTTP Caching Extensions

Wednesday, 12 December 2007

We use caching extensively inside Yahoo! to improve scalability, latency and availability for back-end HTTP services, as I’ve discussed before.

this entry’s page

Why Revise HTTP?

Sunday, 9 December 2007

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.

this entry’s page

WADL Documentation XSLT Updated

Friday, 2 November 2007

I’ve updated the WADL documentation stylesheet, primarily to;

this entry’s page


Saturday, 8 September 2007

Feed Paging and Archiving (nee Feed History) has finally made it to a standards-track RFC.

this entry’s page

ETags, ETags, ETags

Tuesday, 7 August 2007

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, and much more.

this entry’s page

URI Templates Redux

Saturday, 28 July 2007

URI Templates -01 is now an Internet-Draft.

this entry’s page

The State of Proxy Caching

Wednesday, 20 June 2007

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 a bit more.

this entry’s page

Safari 3: Protecting Client-Side State

Wednesday, 13 June 2007

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.

this entry’s page

httperf rev

Tuesday, 1 May 2007

Martin Arlitt makes an exciting announcement;

this entry’s page

Squid is My Service Bus

Sunday, 29 April 2007

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 not nearly enough details of what it does on the ground. So, I decided to concentrate on one aspect of the value that we get from using HTTP for services; intermediation, as an example.

this entry’s page

WWW2007 Developers’ Track

Thursday, 5 April 2007

We’ve announced the program for this years’ Developers’ Track, and I’m very excited about the lineup.

this entry’s page

REST Issues, Real and Imagined

Tuesday, 27 February 2007

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 who are new to REST get caught up on small stuff like this;

this entry’s page


Wednesday, 7 February 2007

Yahoo! (finally!) released Pipes as a beta today; congrats to the very talented team that put this together.

this entry’s page

Developers, Developers, Developers

Wednesday, 7 February 2007

A reminder: proposals for the Developers’ Track at WWW2007 should be in by February 16th.

this entry’s page

SOA Jumps Shark

Monday, 4 December 2006

Uche calls it;

this entry’s page

Schema for JSON

Thursday, 30 November 2006

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 is in.

this entry’s page

Friday Fun: I Hate Cookies

Friday, 27 October 2006

There are plenty of reasons to hate HTTP Cookies, but there’s one thing that especially annoys me; their syntax.

this entry’s page

Thoughts on Declarative Ajax

Thursday, 19 October 2006

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.

this entry’s page

Wanted: HTTP Yahoo!s

Tuesday, 17 October 2006

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.

this entry’s page

Does the Enterprise (Vendor) Get the Web?

Friday, 13 October 2006

A couple of interesting things have happened recently; first, Jonathan Marsh has a new job;

this entry’s page

URI Templating, the Spec

Wednesday, 4 October 2006

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 in the Link Header draft, and have also been working in the background with DeWitt Clinton, Joe Gregorio, Marc Hadley, Dave Orchard, and James Snell on a more general specification, URI Templates, the first draft of which we (finally!) got published today.

this entry’s page

More JavaScript Updates

Sunday, 1 October 2006

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

this entry’s page

Javascript Updates

Thursday, 28 September 2006

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! the other day; the demo gods were not smiling). It does not work in Opera; it seems like the more I use XHR in that browser, the more bugs I find. I’m thinking of updating the XHR tests to catch more of them, but it’s a fair amount of work.

this entry’s page

Surfing the Barcoded Web

Saturday, 16 September 2006

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.

this entry’s page

Caching Performance Notes

Monday, 21 August 2006

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.

this entry’s page

Un tutoriel de la mise en cache

Friday, 18 August 2006

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

this entry’s page

Putting the Web back in Web 2.0

Monday, 14 August 2006

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

Friday Fun: Percent Encoding

Friday, 30 June 2006

If you boil down the BNF in both RFC2396 and RFC3986, path segments can contain the following characters without percent-encoding them:

this entry’s page

Welcome, Hugo!

Saturday, 24 June 2006

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 to work with him; there’s lots to do!

this entry’s page

Bringing Back the Link - With a Twist

Thursday, 22 June 2006

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 the Web — to tie resources together, without getting in users’ faces.

this entry’s page

Microsoft's RESTful Robots

Tuesday, 20 June 2006

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;

this entry’s page

Friday Fun: Feed Authentication with Cookies

Friday, 9 June 2006

See if your aggregator can subscribe to this feed (username/password: test/test) and post the results in comments.

this entry’s page

Web Services are Dead, Long Live Web Services

Thursday, 25 May 2006

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 entry’s page

Caching Web 2.0

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;

this entry’s page

Yaron Uncloaks!

Thursday, 11 May 2006

Yaron publicly says what he’s doing at Microsoft (scroll down);

this entry’s page

The State of Browser Caching

Thursday, 11 May 2006

Updated 2006-06-03

this entry’s page


Wednesday, 10 May 2006

Anne-Thomas Manes extolls the virtues of WS-*;

this entry’s page


Sunday, 23 April 2006

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

this entry’s page

DOM vs. Web

Thursday, 20 April 2006

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.

this entry’s page

Bug Syncronicity

Thursday, 13 April 2006

I’ve had a lyric running through my head for the last day or so, thanks to a couple of bugs.

this entry’s page

Are Namespaces (and mU) Necessary?

Friday, 7 April 2006

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 tell consumers when an extension needs to be understood (a.k.a. mustUnderstand).

this entry’s page

What good is SOAP to HTTP?

Thursday, 6 April 2006

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.

this entry’s page

Don’s False Choice

Monday, 20 March 2006

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

this entry’s page

Web Authentication

Thursday, 16 March 2006

There’s some excitement out there about “ Cookie-less HTTP Authentication.”

this entry’s page

WS-Transfer, WAKA and the Web

Wednesday, 15 March 2006

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

this entry’s page

Feed History Redux

Wednesday, 1 March 2006

Over the weekend, I submitted a new draft of Feed History.

this entry’s page

Invalidating Caches with POST

Saturday, 18 February 2006

Have you ever posted a comment to a blog, found it missing, so you re-posted it, only to find two entries? Annoying, huh?

this entry’s page


Tuesday, 7 February 2006

Interesting; there are not one but two sessions at the upcoming ETech about taking Web applications offline.

this entry’s page

How Web-Ready is XMLHttpRequest?

Monday, 23 January 2006

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 does in the background is very different, especially with regards to HTTP.

this entry’s page

Safari and Content Sniffing

Wednesday, 11 January 2006

It took two years, but Apple has finally taken steps to limit Safari’s content-sniffing ways;

this entry’s page

Making headway on OPTIONS

Monday, 9 January 2006

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.

this entry’s page

RFC 4229: HTTP Header Field Registrations

Saturday, 24 December 2005

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 filled with HTTP-related headers by RFC 4229.

this entry’s page

Leveraging the Web: Caching

Saturday, 26 November 2005

The first in an occasional series about the real-world benefits of REST and the Web architecture, as applied to HTTP.

this entry’s page

REST vs..?

Monday, 7 November 2005

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.

this entry’s page


Sunday, 30 October 2005

Stumbled across this, from Ian Bicking;

this entry’s page

Calendar <-> Feed?

Wednesday, 26 October 2005

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 one calendar entry?

this entry’s page

Emulating W3C ,tools with mod_rewrite

Sunday, 23 October 2005

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;

this entry’s page

Why Just GET and POST?

Saturday, 22 October 2005

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 of HTTP’s methods.

this entry’s page

OPTIONS Getting Better

Wednesday, 19 October 2005

Roy Fielding has just closed a bug that’s been around since 1996, and which I’ve previously lamented here;

this entry’s page

XSLT for the Rest of the Web

Tuesday, 18 October 2005

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 content you’re interested in has to be available in well-formed XML.

this entry’s page


Wednesday, 5 October 2005

Does anybody else chortle quietly when they see “2.0-this” and “2.0-that”?

this entry’s page

Feed History -04

Monday, 5 September 2005

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 entry’s page

RSS Tutorial for Content Publishers and Webmasters

Thursday, 1 September 2005

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.

this entry’s page

Putting History in Your Feed

Monday, 15 August 2005

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 have instructions for other feed-generating software, please either leave them in comments below, or send me an e-mail.

this entry’s page

Feed History -03

Monday, 15 August 2005

Draft -03 of Feed History: Enabling Stateful Syndication is now available. Significant changes include:

this entry’s page

Adding Semantics to Excel with Microformats and GRDDL

Saturday, 13 August 2005

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 analysis is sloppy, but oh-so-effective. The challenge is to make the data reusable elsewhere.

this entry’s page

Separating the Data Model from its Serialisation

Wednesday, 10 August 2005

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 spent agonizing over whether to make something an attribute or an element.

this entry’s page

HTTP Performance (again)

Monday, 8 August 2005

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 premise that SOAP (and Web services) is about integration with existing applications.

this entry’s page

Making Syndication Enterprise-Grade

Saturday, 16 July 2005

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 popular; people will be using blogs to fundamentally change the way they do business, inside and outside the firewall.

this entry’s page

Don’t use the ‘feed’ URI Scheme

Friday, 15 July 2005

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

this entry’s page

Never Mind the Corporate Blogs; Here’s the Wiki

Saturday, 9 July 2005

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.

this entry’s page

One Description to Bind them All? Nah.

Friday, 8 July 2005

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 well-understood in that field. It gives greater precision, easier flow of ideas, and yes, it raises the bar to entry for newcomers.

this entry’s page

Web Description at the W3C

Tuesday, 24 May 2005

The W3C has just started a mailing list for discussion of Web description formats;

this entry’s page

Prefetching (again)

Sunday, 22 May 2005

There’s been quite a kerfuffle over Google’s Web Accelerator, because it prefetches Web content.

this entry’s page

WADLing towards Web Description

Wednesday, 18 May 2005

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.

this entry’s page

Google's Cache-Control Extensions

Thursday, 12 May 2005

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;

this entry’s page

Greasemonkey and the Web

Monday, 9 May 2005

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.

this entry’s page

Questions Leading to a Web Description Format

Friday, 29 April 2005

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.

this entry’s page

Personalised RSS and Cookie Sharing

Sunday, 24 April 2005

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 in their privacy?

this entry’s page


Sunday, 3 April 2005

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 enabled by current implementations.

this entry’s page


Monday, 21 March 2005

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 of a more general HTTP framework before I wrote a more formal document.

this entry’s page


Tuesday, 22 February 2005

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.

this entry’s page

The Map is Not the Territory

Monday, 7 February 2005

Werner makes an excellent point;

this entry’s page

On How Google Fixed Comment Spam

Wednesday, 19 January 2005

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.

this entry’s page

Tufte would be Proud

Friday, 17 December 2004

The Australian Bureau of Statistics has released a very cool SVG-based animated population pyramid ( non-SVG preview) that very nicely visualises the change in that country’s population over time. While the pyramid technique is fairly common, the addition of a fourth dimension — time — and the ability to track a cohort through it really brings the data to life. Try the “highlight surplus of males or females” feature to see when you’ve got the least competition.

this entry’s page


Wednesday, 15 December 2004

I’m thinking about whether it would be a good idea to have a media type for Python source files, call it “text/python.”

this entry’s page

Why POST is Special

Sunday, 10 October 2004

In a recent post, Don gave his take on the enlightening nature of WS-Transfer;

this entry’s page

The ‘Web’ in Web Services

Monday, 27 September 2004

I was very interested to see the reaction to WS-Transfer [PDF] over the last few days. While the SOAP Resource Representation Header had opprobrium heaped upon it (see previous discussion), Transfer passed by with nothing more than a few nodding heads and people saying “aha.”

this entry’s page

HTTP Header Registries

Wednesday, 8 September 2004

Ever wonder where the heck a particular HTTP header is defined?

this entry’s page

HTTP Authentication and Forms

Thursday, 26 August 2004

It’s no secret that HTTP authentication isn’t used as often as it should be. When I talk to Web developers, there are usually a few reasons for their use of cookies for authentication;

this entry’s page

The Whole Web in a Python Dictionary

Saturday, 31 July 2004

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 HTTP that are usable, encourage good practice, and well-aligned with the specifications.

this entry’s page

Dictionary as API?

Monday, 26 July 2004

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.

this entry’s page

Web-izing The Finder

Sunday, 18 July 2004

Timbl has talked about Web-izing databasesand languages; what about operating systems? Despite Microsoft’s legal troubles brought about trying to integrate the browser into Windows, it’s a good idea.

this entry’s page

Internet Mapping For the Little Guy

Thursday, 1 July 2004

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 Amazon, they don’t integrate user data and third-party applications very well.

this entry’s page


Wednesday, 16 June 2004

Check out the W eb H ypertext A pplication T echnology Working Group; it looks like our last, best hope for extending the browser platform to grow the Web.

this entry’s page

Use Cases for Web Description Formats

Monday, 14 June 2004

One thing about Web description formats that hasn’t seen much discussion yet is how people intend to use them.

this entry’s page

Extreme URL Scraping and Debugging

Saturday, 5 June 2004

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.

this entry’s page

Ubiquitious Fragment Identifiers

Sunday, 30 May 2004

Tim Bray is trying out “purple number signs” on his Web site to make fragment identifiers ubiquitous and easy to find.

this entry’s page

WebDAV Access Control Protocol

Friday, 28 May 2004

RFC 3744 has been published:

this entry’s page


Monday, 3 May 2004

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.

this entry’s page

Using WebDAV as a Description Format for REST

Tuesday, 27 April 2004

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.

this entry’s page

Asynchrony: There Is No Spoon

Monday, 19 April 2004

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 time in the future” they say.

this entry’s page

Describing Generative Identifiers in WSDL

Friday, 16 April 2004

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 named “Jones” has a corresponding entry URI;

this entry’s page

Growing the Web

Sunday, 28 March 2004

Ian Hickson is thinking about client-side technologies (scroll down a bit). Some of his ideas resonated;

this entry’s page

Outage in the Web: Server Configuration

Wednesday, 17 March 2004

In an otherwise excellent article, Jon Udell blames the lack of one-click subscribe in syndication formats on lack of vision;

this entry’s page

Caching Tutorial Update

Sunday, 15 February 2004

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 of new information.

this entry’s page

What is NetKernel?

Tuesday, 3 February 2004

Just got some mail regarding the Cacheability Engine which led me to NetKernel;

this entry’s page

Why Do Web Server APIs Suck So Much?

Monday, 8 December 2003

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.

this entry’s page

A Description Format for REST

Sunday, 7 December 2003

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 for my own purposes.

this entry’s page

Click Submit Only Once

Saturday, 13 September 2003

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 problem is, it puts me and every other shopper between a rock and a hard place.

this entry’s page

HTTP Performance

Thursday, 21 August 2003

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 those same people happen to sell) are needed to “unleash the power of Web services.”

this entry’s page

Structured URIs

Monday, 11 August 2003

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

iDisk Offline

Monday, 4 August 2003

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.

this entry’s page


Tuesday, 29 July 2003

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 be a misunderstanding) is in regard to a need for a Subversion-specific client cache; the whole point of doing this with Web protocols it to avoid application-specific infrastructure. A well-designed WebDAV cache should work equally well for any application, not just Subversion.

this entry’s page


Tuesday, 29 July 2003

Mark Baker is the latest in a series to weigh in on the TAG issue regarding what a HTTP URI can identify.

this entry’s page

Caching PUT

Saturday, 26 July 2003

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 called “Web folders.”

this entry’s page

Blogging with WebDAV

Saturday, 26 July 2003

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 push this.

this entry’s page

Profiling HTTP

Friday, 25 July 2003

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 entry’s page

Caching is often enough

Saturday, 28 June 2003

I feel compelled to respond to Norm Walsh’s thoughts on caching.

this entry’s page

Spot the difference...

Tuesday, 17 June 2003

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

Web-izing the Palm Pilot

Thursday, 12 June 2003

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.

this entry’s page


Thursday, 29 May 2003

Jonathan Rosenberg published a new Internet-Draft, XCAP, to the SIMPLE Working Group in the IETF. Here’s the skinny:

this entry’s page

Conneg based on XML Dialect

Thursday, 8 May 2003

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


Monday, 5 May 2003

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.

this entry’s page

It's alive

Saturday, 26 April 2003

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.

this entry’s page


Thursday, 24 April 2003

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.

this entry’s page

HTTP header sniffing

Tuesday, 8 April 2003

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

Macrosoft, Part II

Thursday, 27 March 2003

Dave seems excited by Macromedia’s announcement.

this entry’s page

RSS standardization (again)

Tuesday, 25 March 2003

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 by the lack of a stable spec published by a recognized group.

this entry’s page

Blogging Zipf

Sunday, 26 January 2003

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 to see.

this entry’s page

Mozilla Prefetching

Wednesday, 27 November 2002

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.

this entry’s page


Thursday, 12 September 2002

Jeremy Allaire talks about establishing a “rich client” platform because HTML is “stagnant.” Two questions; will it be standards-based, and what about SVG?

this entry’s page