Appendix A. URIs, Client-Server Architecture, and HTTP

While hypertext brings into being a (virtual) landscape unlike anything else in human experience, its reliance on the underlying Internet often goes unnoticed. Web developers don’t need to know much about the deep plumbing of the Internet—parts like TCP, IP, and DNS. Hypertext Transfer Protocol (HTTP), though, is critical to website construction, as it provides the foundation for all those http:// URIs scattered in links and references.

The Underlying Client-Server Architecture

Client-server protocols (including HTTP) typically work through the steps shown in Figure A-1 over the course of a transaction.

Client-server architecture as a flow of six steps

Figure A-1. Client-server architecture as a flow of six steps

  1. The client looks up the IP address of the server from a nameserver if necessary.

  2. The client looks up and opens a transport layer connection to the server; in the case of HTTP, this is done via TCP/IP.

  3. The client then sends data to the server over that connection that is adequate to the requirements of receiving a reply from the server. That broadcast is usually termed a request.

  4. The server receives the request and processes it by running all related executable code, then packaging the resulting output.

  5. The server sends that packaged data back along the connection opened by the client in step 1. This is usually referred to as the response.

  6. The client receives the data and—if it’s ...

Get HTML & CSS: The Good Parts now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.