Every status code
has a face.
Every status
code has a face.

Ten HTTP codes, illustrated by DeepSeek-chan and explained without jargon.

The plates

Ordered by code. Open a plate for the meaning, the usual causes, and what to do.

DeepSeek-chan, a blue-haired whale girl in a maid outfit, happily eating a bowl of rice with sparkles around her.

200OK

The request worked.

DeepSeek-chan at a security gate, holding up a hand to refuse an ID card offered by a man in a suit.

401Unauthorized

No valid credentials.

DeepSeek-chan clutching a rice bowl and scowling at a hand reaching for it, with a red prohibition sign above.

403Forbidden

Understood, then refused.

DeepSeek-chan sitting beside an open rice cooker with an empty bowl, question marks floating above her head.

404Not Found

The URL routes; nothing is there.

DeepSeek-chan asleep at a laptop, a large clock behind her and a stack of papers beside the desk.

408Request Timeout

The complete request never arrived.

DeepSeek-chan flattened under an absurdly long box of egg tarts.

414URI Too Long

The address is too long.

DeepSeek-chan peeking out from inside a large blue-and-white teapot.

418I’m a teapot

A real code, reserved as a joke.

DeepSeek-chan at a laptop, overwhelmed by a storm of paper request forms.

429Too Many Requests

You hit the rate limit.

DeepSeek-chan collapsed on the floor beside a smoking server rack and a monitor showing an error.

500Internal Server Error

The server hit an unexpected condition.

DeepSeek-chan asleep beside a server rack with a maintenance sign, traffic cone, and toolbox.

503Service Unavailable

Temporarily unable to serve.

Three families

The first digit tells you who is responsible.

2xx

It worked.

4xx

The request is the problem.

5xx

The server is the problem.

1xx / 3xx: not in this edition.