Most people use HTTP daily, but few understand its inner workings. This “Build Your Own X” book dives deep, teaching basics from scratch for a clearer understanding of the tools and tech we rely on.


Part I: Make A Basic HTTP Server

  1. Introduction
  2. HTTP Overview
  3. Code A TCP Server
  4. Promises and Events
  5. A Simple Network Protocol
  6. HTTP Semantics and Syntax
  7. Code A Basic HTTP Server

Part II: Applications & Extensions

  1. Dynamic Content and Streaming
  2. File IO & Resource Management
  3. Range Requests
  4. HTTP Caching
  5. Compression & the Stream API
  6. WebSocket & Concurrency

PDF/EPUB and Paperback Editions

The full book is available for purchase.

I have curated a list of resources that are highly relevant and can be used as supplements.

High Performance Browser Networking by Ilya Grigorik.
[Amazon] [Web]
A book that focuses on creating fast network applications. One cannot understand performance issues without first understanding networking. Although the title says “browser”, this is a general and practical networking book relevant to all kinds of developers.
Fundamentals of Backend Engineering by Hussein Nasser.
Moving data around databases is only a small part of backend applications, a larger part of backend engineering is about computer networking, i.e. how components are connected, different communication patterns such as push or polling, layers of protocols, and etc. This Udemy course largely overlaps with the goal of this project, but goes broader and deeper.
Eloquent JavaScript by Marijn Haverbeke.
[Amazon] [Web]
Not a JS developer, but still want to follow this project and code an HTTP server? Fortunately, JS is one of the easiest languages to pick up. If you know a few other programming languages, you can probably get started in no time.