HTTP & APIs
Read the exchange, not the guess
Almost every argument about a failing request is settled by six lines of text nobody read. This is the protocol itself, drilled until reading it is fast: what a repeat promises, what a code owes you, how long a copy lasts, and which rule the browser applied before it refused.
- Modules
- 6
- Drills
- 15
- Build steps
- 3
- Time
- ~4h
Walk out able to
Take an exchange you have never seen and say what happens next — a retry, a redirect, a cache hit, a refusal — and name the rule that decided it.
What you drill
The message on the wire
URLs, framing, and the part that never leaves the client.
Methods and status codes
What a repeat promises, and what a code owes you.
Headers and caching
Negotiation, freshness, revalidation, and Vary.
Why the browser blocked it
Origins, preflight, credentials, and the rule that broke.
The pitch
What you practise, and what you leave with
Not an artifact — a reading speed. Fifteen procedures that are each current or not, plus your own headers pulled out of a live server.
You will practise
- URLs, framing, and where a message ends
- Method contracts, redirects, status codes
- Negotiation, freshness, revalidation, Vary
- Origins, preflight, and CORS diagnosis
Afterwards you can
- Say whether a timed-out request may be repeated
- Name the header a status code owes you
- Work out how long a cache may serve its copy
- Name the CORS rule that blocked a call
Modules
6 modules, 27 items
Lessons explain one idea. Drills repeat it until it sticks. Build steps make something that exists afterwards.
- 1
Read the exchange
~36 minSay what a browser actually sends, and where the reply stops.
- LessonWhy read the raw exchange4 min
- LessonWrite out the request7 min
- LessonFind where the reply ends7 min
- DrillTake a URL apart8 min
- DrillSay where the message ends10 min
- 2
What the method promises
~20 minDecide whether a repeat is safe, and which request a redirect actually asks for.
- DrillDecide if a repeat is safe10 min
- DrillFollow the redirect10 min
- 3
Answer with the right code
~30 minChoose the code a case needs, name what it owes, decide what a client does next.
- DrillPick the code the case needs11 min
- DrillName what the code owes10 min
- DrillDecide what the client does next9 min
- 4
Let the headers decide
~21 minFind the line that settles a question, and work out which representation wins.
- DrillName the header that settles it9 min
- DrillServe what they asked for12 min
- 5
Fresh, stale, or ask again
~48 minRun a cache’s whole decision: the right copy, how long it lasts, and what to ask.
- LessonName a cache’s three answers6 min
- LessonWork out how long a copy lasts7 min
- DrillDecide fresh or stale12 min
- DrillRun the revalidation12 min
- DrillKey the cache by Vary11 min
- 6
Why the browser blocked it
~1hCompare origins, predict a preflight, and name the rule that blocked a call.
- DrillSay whether they share an origin7 min
- DrillSay whether it preflights11 min
- DrillFind the rule that blocked it13 min
- Build stepPull a response head of your own5 min
- Build stepAsk again with what you hold5 min
- Build stepWear a browser’s Origin header5 min
- LessonDiagnose the invoice that moved5 min
- LessonDiagnose a refusal with a bad code5 min
- LessonDiagnose a copy in two caches5 min
- LessonDiagnose a call that works signed out6 min
More in APIs & services
Keep going
Auth
Everything works until somebody holds one piece of it.
Intermediate~3h5 modules
REST API Design
Every good decision has a constraint behind it.
Intermediate~3h7 modules
Message Queues
The broker will hand it to you again. How many times?
Advanced~3h5 modules
GraphQL
One request, and a bill nobody counted.
Advanced~4h6 modules
Every answer is already in the headers.
The first item is free. ~4h of focused work, at your own pace.
Intermediate~4h6 modules