HTML and CSS Reference
is responsible for simply transmitting packets between two hosts on the Internet) and the
Transmission Control Protocol (TCP, which can be viewed as a pipe stretched across the
Internet and carries a reliable stream of bytes in each direction between two endpoints).
Together, TCP over IP (TCP/IP) has historically been and continues to be the core
transport layer protocol used by innumerable network applications.
A Brief History of the Internet
In the beginning, there was TCP/IP communication between Internet hosts. In
this scenario, either host can establish new connections. Once a TCP connection is
established, either host can send data at any time, as shown in Figure 3-1 .
Figure 3-1. TCP/IP communication between Internet hosts
Any other feature you might want in a network protocol must be built on top of the
transport protocol. These higher layers are called application protocols . For example, two
important application layer protocols that predate the Web are IRC for chat and Telnet
for remote terminal access. IRC and Telnet clearly require asynchronous bidirectional
communication. Clients must receive prompt notification when another user sends a
chat message or when a remote application prints a line of output. Since these protocols
typically run over TCP, asynchronous bidirectional communication is always available.
IRC and Telnet sessions maintain persistent connections on which the client and server
can send freely to each other at any time. TCP/IP also serves as the foundation for two
other important protocols: HTTP and WebSocket. Before we get ahead of ourselves,
though, let's take brief look at HTTP.
The Web and HTTP
In 1991, the World Wide Web project was announced in its earliest public form. The Web
is a system of linked hypertext documents using Universal Resource Locators (URLs). At
the time, URLs were a major innovation. The U in URL, standing for universal, points to
the then-revolutionary idea that all hypertext documents could be interconnected. HTML
documents on the Web link to other documents by URLs. It makes sense, then, that the
protocol of the Web is tailored to fetching resources. HTTP is a simple synchronous
request-response style protocol for document transfer.
The earliest web applications used forms and full page reloads. Every time a user
submitted information, the browser would submit a form and fetch a new page. Every