Most people only recognize 404 (not found) and 200 (OK), but HTTP defines dozens of status codes, and the specific number a server returns changes real client behavior, browser caching, search engine indexing, retry logic, not just what gets displayed to a user. The first digit tells you the category, and the two digits after it narrow down the exact meaning within that category.
The five ranges at a glance
1xx (informational) codes are rare in everyday web use, they signal that a request was received and processing is continuing, mostly relevant at the protocol level rather than something application code typically handles directly. 2xx (success) codes mean the request worked: 200 is a generic OK, 201 specifically means a new resource was created (common after a POST request), and 204 means success with no content to return (common after a DELETE).
3xx (redirection) tells the client to look elsewhere, and 4xx (client error) means the request itself was the problem, while 5xx (server error) means the server failed to fulfill an otherwise valid request, the distinction matters because it tells a client (and a developer debugging the issue) which side of the connection needs to change something.
301 vs 302: a real, consequential difference
301 means "moved permanently," and search engines and browsers respond by updating their records to point at the new URL going forward, transferring accumulated SEO ranking signals to the new address. 302 means "found" (a temporary redirect), telling clients to fetch the new location this one time without treating it as a permanent replacement, ranking signals stay associated with the original URL. Using 302 for a permanent site migration is a common SEO mistake, since search engines won't fully consolidate the old URL's authority onto the new one the way a 301 tells them to.
401 vs 403: authentication vs authorization
401 (Unauthorized) actually means "you're not authenticated," the server doesn't know who you are, so log in and try again. 403 (Forbidden) means the server knows exactly who you are but you're not allowed to access this specific resource regardless, logging in again won't help. Confusing the two in an API's design is a common source of client-side bugs, code that automatically prompts a re-login on any 401/403 will loop uselessly on a 403 that no amount of re-authentication will resolve.
Other frequently misunderstood codes: 429 means the client is being rate-limited (too many requests, try again later, often with a Retry-After header), and 500 vs 503 distinguishes a generic server-side crash (500) from a server that's deliberately unavailable right now, often due to maintenance or overload (503). When debugging an API integration or checking what a specific status code actually implies for retry logic, the HTTP Status Code Lookup gives the precise definition, and the API Response Viewer helps inspect full request/response details including headers and status together.

