Chapter 7. The Past, Present, and Future of Local Storage for Web Applications

Persistent local storage is one of the areas where native client applications have traditionally held an advantage over web applications. For native applications, the operating system typically provides an abstraction layer for storing and retrieving application-specific data like preferences or runtime state. These values may be stored in the registry, INI files, XML files, or some other place, according to platform convention. If your native client application needs local storage beyond key/value pairs, you can embed your own database, invent your own file format, or implement any number of other solutions.

Historically, web applications have had none of these luxuries. Cookies were invented early in the Web’s history, and indeed they can be used for persistent local storage of small amounts of data. But they have several potentially dealbreaking downsides:

What we really want is:

There have been a number of attempts to achieve this, all ultimately unsatisfactory in different ways.