Appendix A. Protocols in Practice

Building on Chapter 1, let’s look at an example of web protocols in practice: HTTP, QUIC, and DNS. Understanding protocols will help explain the reality of systems communicating. And these protocols are evolving as the needs of the web evolve.

Hypertext Transfer Protocol

HTTP covers a set of web standards describing how systems communicate on the web. A number of different HTTP server types are optimized for different use cases, from application servers that run web app code like Apache Tomcat to cache servers like Squid to web servers like the Apache HTTP Server Project. A modern web stack may incorporate multiple HTTP servers to provide service.

Originally, HTTP was designed as a client/server, one-request/one-response protocol. You could use Wireshark and tcpdump to look at sniffed traffic and reconstruct web conversations because communication was done in plain text.

Over time, HTTP has evolved. One of the adaptations includes using HTTP headers to pass additional information with an HTTP request or response. Historically, custom proprietary headers used the X- prefix, but that’s been deprecated. HTTPS over HTTP/1 and HTTP/2 uses TLS, TCP, and IP (see Figure A-1).

msad aa01
Figure A-1. An HTTPS stack using the TCP/IP model

Before two systems can communicate over HTTP/1, they must establish a TCP connection. HTTP/1.0 opens a separate TCP connection ...

Get Modern System Administration 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.