FIELD NOTE / 2026.09.113 MIN READ / 5 SOURCES

HTTP, HTML, and URLs: The Three Agreements That Made the Web Interoperable

The early Web worked because independently built clients and servers could agree on three things: how to identify resources, how to request representations, and how to encode linked documents.

The Web needed agreements at several layers

A universal information system could not depend on one application storing every document. The early Web therefore separated resource identity, transfer and representation into related but distinct mechanisms.

Berners-Lee’s Web history describes publishing specifications for resource identifiers, HTML and HTTP so others could build compatible software.[1]

URLs gave resources globally usable names

A Web link needs to identify both how a resource can be accessed and where the relevant server can be found. Berners-Lee later explained that URI syntax deliberately separated the server-related portion from the path-like portion handled by that server.[2]

This gave links a level of independence from the internal data structures of remote systems.

Identity could outlive one representation

A resource identifier does not have to mean one immutable file format. The Web architecture can associate a stable resource with different representations or later implementations.

DNS connected human-readable hosts to network addresses

HTTP URLs rely on the domain-name infrastructure to locate servers, showing how Web architecture was layered on existing Internet services rather than replacing them.

HTTP made requests deliberately generic

HTTP was designed for traversing hypertext and retrieving remote representations. Berners-Lee’s later architectural history contrasts HTTP with heavier file-transfer mechanisms and emphasizes the value of a generic protocol for accessing resources.[3]

Requests and responses created a simple client-server interaction that browsers, command-line tools and later APIs could all use.

HTTP evolved from minimal prototype to documented Internet protocol

Early Web software used a very small protocol sometimes called HTTP/0.9. As the Web grew, headers, status codes, metadata and additional methods became necessary. RFC 1945 documented HTTP/1.0 practice in 1996.[4]

Status codes made failure explicit

A standardized response could distinguish success, redirection, client errors and server errors rather than leaving every application to infer what happened.

Metadata enabled representation negotiation

Headers could describe content type, language, caching and other properties, allowing the transfer protocol to support more than raw HTML files.

HTML made linked documents portable across machines

HTML represented headings, paragraphs, lists, links and other structures through text markup. W3C’s HTML 2.0 materials describe it as a platform-independent language for hypertext documents and record its use on the Web since 1990.[5]

Because HTML was text-based and openly specified, many tools could generate or consume it.

Separating HTML from HTTP allowed both to evolve

HTTP can transfer images, JSON, video and many other media types; HTML can be delivered through mechanisms other than a live HTTP request. This separation reduced unnecessary coupling.

Berners-Lee’s Web architecture writing explicitly highlights independence between the transfer protocol and representation formats.[3]

Standards protected the Web from one-browser capture

As commercial browsers added features, shared specifications became essential. W3C and IETF standardization efforts attempted to turn common practice into interoperable behavior rather than let each browser invent an incompatible Web.

HTML 2.0 and later HTML recommendations document this transition from rapidly evolving practice toward shared standards.[5]

Why these three agreements became a platform

URLs answer ‘what resource?’, HTTP answers ‘how do we exchange representations?’, and HTML answers ‘how can a linked document be represented?’. Keeping those concerns distinct allowed browsers, servers and publishing tools to be built independently.

The Web scaled not because every participant used the same program, but because different programs could agree on small interfaces between layers.

RESEARCH / PROVENANCE

Works Cited

5 SOURCES
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05

CodeHistory is a living archive. Citations document the evidence used for this edition; later evidence may refine the account.

Contribute / Corrections

Improve the record.

Use this moderated submission form to suggest a correction, provide a source, challenge a priority claim or identify a missing contributor. Submissions are treated as research leads, not automatically published comments.

Submit a research lead

Please do not submit confidential material or claims you cannot support.