mnot’s blog

Design depends largely on constraints.” — Charles Eames

Web

Friday, 22 April 2016

Ideal HTTP Performance

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

Tuesday, 18 August 2015

Will there be a Distributed HTTP?

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 Archive.org 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

Wednesday, 18 February 2015

HTTP/2 is Done

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

Saturday, 27 December 2014

Why Intermediation is Important

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

Saturday, 27 December 2014

Python 2 and TLS SNI

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

this entry’s page

Thursday, 4 December 2014

What is the Web?

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

Saturday, 7 June 2014

RFC2616 is Dead

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

Sunday, 1 June 2014

Chrome and Stale-While-Revalidate

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

Friday, 9 May 2014

If You Can Read This, You're SNIing

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

Monday, 17 March 2014

Trying out TLS for HTTP:// URLs

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

Thursday, 30 January 2014

Nine Things to Expect from HTTP/2

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

Tuesday, 4 December 2012

Evolving HTTP APIs

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

Wednesday, 5 September 2012

Why PATCH is Good for Your HTTP API

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

Saturday, 4 August 2012

HTTP in Vancouver

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

Profiles

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

this entry’s page

Saturday, 14 April 2012

User Personas for HTTP APIs

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

Friday, 13 April 2012

JSON or XML: Just Decide

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

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.

this entry’s page

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.

this entry’s page

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.

this entry’s page

Friday, 2 September 2011

RFC6266 and Content-Disposition

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

this entry’s page

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;

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.

this entry’s page

Friday, 5 August 2011

HTTP Pipelining Today

Last week, Blaze.io highlighted how mobile browsers use HTTP pipelining.

this entry’s page

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.

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

this entry’s page

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

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.

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.

this entry’s page

Monday, 4 April 2011

HTTP POST: IETF Prague Edition

this entry’s page

Tuesday, 22 March 2011

Your REST worries have ended.

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

this entry’s page

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:

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.

this entry’s page

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

this entry’s page

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.

this entry’s page

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.

this entry’s page

Wednesday, 5 May 2010

Thoughts on Archiving HTTP

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

this entry’s page

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

this entry’s page

Wednesday, 10 March 2010

Caching-Tutorial für Webautoren und Webmaster

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

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.

this entry’s page

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.

this entry’s page

Wednesday, 16 December 2009

HTTP + Politics = ?

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

this entry’s page

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.

this entry’s page

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

this entry’s page

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.

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

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.

this entry’s page

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

this entry’s page

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.

this entry’s page

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;

this entry’s page

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:

this entry’s page

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

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:

this entry’s page

Wednesday, 18 February 2009

Stop it with the X- Already!

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

this entry’s page

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.

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;

this entry’s page

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

Friday, 4 July 2008

The WS-Empire Strikes Back... feebly

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

this entry’s page

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

DAV WTF?

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

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.

this entry’s page

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

this entry’s page

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 Patrick and Joe’s thoughts for a nice contrast).

this entry’s page

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.

this entry’s page

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.

this entry’s page

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.

this entry’s page

Friday, 2 November 2007

WADL Documentation XSLT Updated

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

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.

this entry’s page

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

this entry’s page

Saturday, 28 July 2007

URI Templates Redux

URI Templates -01 is now an Internet-Draft.

this entry’s page

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

this entry’s page

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.

this entry’s page

Tuesday, 1 May 2007

httperf rev

Martin Arlitt makes an exciting announcement;

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

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.

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

this entry’s page

Wednesday, 7 February 2007

Pipes!

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

this entry’s page

Wednesday, 7 February 2007

Developers, Developers, Developers

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

this entry’s page

Monday, 4 December 2006

SOA Jumps Shark

Uche calls it;

this entry’s page

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

this entry’s page

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.

this entry’s page

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.

this entry’s page

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.

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;

this entry’s page

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

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

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

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.

this entry’s page

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.

this entry’s page

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

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:

this entry’s page

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

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

this entry’s page

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;

this entry’s page

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.

this entry’s page

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

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

Thursday, 11 May 2006

Yaron Uncloaks!

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

this entry’s page

Thursday, 11 May 2006

The State of Browser Caching

Updated 2006-06-03

this entry’s page

Wednesday, 10 May 2006

Vendor-pires

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

this entry’s page

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

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.

this entry’s page

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.

this entry’s page

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

this entry’s page

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.

this entry’s page

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

this entry’s page

Thursday, 16 March 2006

Web Authentication

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

this entry’s page

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

this entry’s page

Wednesday, 1 March 2006

Feed History Redux

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

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?

this entry’s page

Tuesday, 7 February 2006

Offline

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

this entry’s page

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

this entry’s page

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;

this entry’s page

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.

this entry’s page

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

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.

this entry’s page

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.

this entry’s page

Sunday, 30 October 2005

Frameworks

Stumbled across this, from Ian Bicking;

this entry’s page

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

this entry’s page

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;

this entry’s page

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

this entry’s page

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;

this entry’s page

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

this entry’s page

Wednesday, 5 October 2005

2.0

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

this entry’s page

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

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.

this entry’s page

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

this entry’s page

Monday, 15 August 2005

Feed History -03

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

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

this entry’s page

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

this entry’s page

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

this entry’s page

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

this entry’s page

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

this entry’s page

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.

this entry’s page

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

Tuesday, 24 May 2005

Web Description at the W3C

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

this entry’s page

Sunday, 22 May 2005

Prefetching (again)

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

this entry’s page

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.

this entry’s page

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;

this entry’s page

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.

this entry’s page

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.

this entry’s page

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

this entry’s page

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

this entry’s page

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

this entry’s page

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.

this entry’s page

Monday, 7 February 2005

The Map is Not the Territory

Werner makes an excellent point;

this entry’s page

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.

this entry’s page

Friday, 17 December 2004

Tufte would be Proud

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

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

this entry’s page

Sunday, 10 October 2004

Why POST is Special

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

this entry’s page

Monday, 27 September 2004

The ‘Web’ in Web Services

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

Wednesday, 8 September 2004

HTTP Header Registries

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

this entry’s page

Thursday, 26 August 2004

HTTP Authentication and Forms

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

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

this entry’s page

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.

this entry’s page

Sunday, 18 July 2004

Web-izing The Finder

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

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

this entry’s page

Wednesday, 16 June 2004

What?

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

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.

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.

this entry’s page

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

Friday, 28 May 2004

WebDAV Access Control Protocol

RFC 3744 has been published:

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.

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.

this entry’s page

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

this entry’s page

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

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;

this entry’s page

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;

this entry’s page

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

this entry’s page

Tuesday, 3 February 2004

What is NetKernel?

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

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.

this entry’s page

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

this entry’s page

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

this entry’s page

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

this entry’s page

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

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.

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

httpRange-14

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

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

this entry’s page

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

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

Saturday, 28 June 2003

Caching is often enough

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

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

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.

this entry’s page

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:

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

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.

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.

this entry’s page

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.

this entry’s page

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.

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

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

this entry’s page

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.

this entry’s page

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?

this entry’s page