The dissertation that named the web
Roy Fielding’s doctoral dissertation, submitted to UC Irvine in May 2000, is a document about an architecture that already existed. The web it describes was already running. The protocol it analyzed had been handling millions of requests a day for three years. Fielding was not proposing a design. He was giving a name to one.
By that point, Fielding had been building the web’s plumbing for the better part of a decade. He co-authored RFC 1945, the HTTP/1.0 specification, in 1996, and led the HTTP/1.1 work that culminated in RFC 2616 three years later. He also co-founded Apache — the open-source web server named for the Apache Nation and, not coincidentally, a pun on “a patchy server” — and by 2000 Apache was running on roughly half the websites on earth. The dissertation was Fielding’s attempt to explain, in retrospect, why all of it worked.
The document examines nearly a dozen architectural styles before arriving, in Chapter 5, at Representational State Transfer. REST, as Fielding defined it, was a set of six constraints: client-server separation, statelessness, cacheability, a uniform interface, a layered system, and code on demand. None of these were inventions. They were names for design decisions already embedded in HTTP. Fielding was doing taxonomy on his own work.
The name itself is a small machine. “Representational State Transfer” describes how a well-designed web application behaves: you navigate from resource to resource, each response a representation of that resource’s current state, following a link to transfer you to the next. The web as a distributed state machine, addressed by URLs, driven by hypermedia, described entirely by what the server hands you.
Eight years after the dissertation, Fielding published a post on his personal blog titled “REST APIs Must Be Hypertext-Driven.” The tone was not warm. Every startup with an HTTP endpoint was calling its interface “RESTful,” but what most of them had built — fixed URL schemes, JSON payloads, verbs mapped to CRUD — was HTTP with a borrowed name. The feature Fielding considered central, HATEOAS (the principle that a client should discover available actions from links in the server’s response, not from a separate manual), was almost nowhere to be found. “Please try to adhere to them,” he wrote, “or choose a different buzzword.”
The industry, broadly, kept the buzzword. But the simplified version of REST — use HTTP verbs for what they’re for, make resources addressable, go stateless — was enough to dismantle SOAP’s elaborate ceremony. SOAP required XML envelopes, WSDL definitions, and often a code generator just to make a single request; the abbreviated REST let a developer type a URL into a browser and see what came back. Salesforce, Twitter, Stripe: the pattern they chose was the unofficial REST that Fielding said wasn’t quite right. He had described an architecture the web had already grown into. Everyone else used the description as a blueprint for something slightly different.
He named an architecture that already existed. The builders who came after read the name, not the footnotes, and built something close enough to last.
Sources
- Roy Fielding — Wikipedia — biographical details, Apache co-founding, HTTP authorship, career at UC Irvine
- REST — Wikipedia — the six constraints, HATEOAS, spread and misapplication of “RESTful” APIs
- REST APIs Must Be Hypertext-Driven — Roy T. Fielding (2008) — Fielding’s own account of how REST was being misapplied
- Roy Fielding’s Misappropriated REST Dissertation — Two-Bit History (2020) — analysis of the gap between the dissertation’s argument and “REST API” in practice