/learning-http

Learn HTTP by writing a server on top of TCP in Go

Primary LanguageGoMIT LicenseMIT

Learning HTTP

Understanding one step below the abstraction level where you operate is extremely useful. For most programmers who spend a lot of their time developing REST APIs, this level would be HTTP. What better way to learn about how the HyperText Transfer Protocol works than to build a server on top of TCP?

  1. TCP Logger - Listen for TCP connections and log what is received
  2. TCP Two-Way Communication - Create a protocol for talking back-in-forth over TCP
  3. Minimal HTTP Server - The bare bones of responding to a HTTP request
  4. HTTP Server Outline - Scaffolding out our own HTTP package
  5. HTTP Server Implementation - A "working" HTTP server

Additional Topics

A. Pipelining

B. Chunked Transfer Encoding

C. HTTP 2.0