CHAPTER 1 / 8
From the document web to the dynamic web
The Web's original promise was not a display technology but a common set of rules for requesting resources by address and receiving responses.
Why this concept became necessary
The early Web excelled at distributing linked documents. The simple combination of URL, HTTP, and HTML let authors and readers find and read the same document in different environments, but data that varied by user and immediate responses to input had to be handled by the server generating and returning a new document.
CGI and server-side templates produced dynamic pages by executing programs or assembling HTML for each request. Keeping computation and data access on the server simplified deployment, but even small interactions required full-page round trips, and UI code and business rules were easily mixed in one file.
JavaScript made it possible to modify documents in the browser and update part of a page through asynchronous requests. This did not eliminate the server; it redistributed responsibility, moving user interaction to the browser while the server continued providing data and rules.
The Web's original promise was not a display technology but a common set of rules for requesting resources by address and receiving responses.
The browser requests only the data it needs and updates part of the DOM, reducing full-document round trips.
Observe how core tasks behave with JavaScript disabled, a slow network, and back navigation.
Follow it through a concrete system
For example, a company profile page in the 1990s could send the same file to every visitor. But when shopping carts, message boards, and online banking required different state for each user, servers had to read cookies and sessions from requests and insert database results into HTML. The screen was still a complete document, but producing it changed from copying a file to executing a program.
Knowing this history helps avoid labeling static pages as old and dynamic applications as new. Help content that changes rarely can use prebuilt HTML for faster delivery and fewer failure points. In contrast, live inventory and personal permissions require request-time computation. For each page, first decide who produces the content, when it is regenerated, and how stale a result is acceptable on failure.
Selection criteria and failure boundaries
Because state exists in two places, URL handling, back navigation, error recovery, and accessibility must be designed separately.
Misconceptions to avoid: It is incorrect to assume that the dynamic web must always be a JavaScript SPA.
Verify it yourself
Observe how core tasks behave with JavaScript disabled, a slow network, and back navigation.
Official sources for this chapter
The technical facts in the text were reviewed against the following primary sources. The author reconstructed the diagrams and comparisons using these materials.
- Ecma TC39, 「ECMAScript Language Specification」Review date 2026-08-28 · Scope Living specification
- Vercel, 「Linking and Navigating」Review date 2026-08-28 · Scope Next.js App Router