Introduction to Web Development and CMS
2. HTTP Status Codes Explained
Every single request your browser sends to a server gets a reply carrying a three-digit HTTP status code, telling you exactly what happened. Reading these codes is one of the fastest ways to diagnose a broken page, a misconfigured CMS, or a blocked request — you will use them constantly once you start managing live websites. Codes are grouped into five classes by their first digit:
|
Code |
Name |
What It Means |
Where You'll See It in CMS Work |
|
100 |
Continue |
The server has received the request headers and the client should proceed to send the body. |
Rare; large file uploads (e.g., media library). |
|
200 |
OK |
The request succeeded and the server is returning the requested content. |
A normal, healthy page or API load. |
|
201 |
Created |
The request succeeded and a new resource was created. |
A REST API call that creates a new post/user. |
|
204 |
No Content |
The request succeeded but there is nothing to return. |
A successful background save with no visible response. |
|
301 |
Moved Permanently |
The resource has a new, permanent URL; browsers and search engines should update their records. |
A page/post slug changed, or http:// was redirected to https://. |
|
302 |
Found (Temporary Redirect) |
The resource is temporarily at a different URL. |
Login redirects, maintenance-mode redirects. |
|
304 |
Not Modified |
The cached version the browser already has is still valid; no need to re-download. |
Caching plugins returning a cached asset. |
|
400 |
Bad Request |
The server could not understand the request due to malformed syntax. |
A broken form submission or malformed API call. |
|
401 |
Unauthorized |
Authentication is required and has failed or not been provided. |
Trying to access wp-admin while logged out. |
|
403 |
Forbidden |
The server understood the request but refuses to authorise it. |
A security plugin blocking a suspicious request; wrong file permissions. |
|
404 |
Not Found |
The server cannot find the requested resource. |
A broken link, deleted page, or mistyped URL — the most common CMS error. |
|
405 |
Method Not Allowed |
The HTTP method used (GET/POST/etc.) is not supported for that URL. |
Submitting a form to the wrong endpoint. |
|
408 |
Request Timeout |
The server timed out waiting for the request. |
Very slow network or server under heavy load. |
|
409 |
Conflict |
The request conflicts with the current state of the resource. |
Two editors saving the same post simultaneously. |
|
410 |
Gone |
The resource existed once but has been permanently removed. |
A deliberately deleted page the owner wants removed from search results. |
|
429 |
Too Many Requests |
The client has sent too many requests in a given time (rate limiting). |
A brute-force login attempt being blocked by a security plugin. |
|
500 |
Internal Server Error |
A generic server-side failure — something broke in the server's own code. |
A fatal PHP error, often from a broken plugin/theme update — the dreaded 'white screen of death'. |
|
502 |
Bad Gateway |
A server acting as a gateway/proxy received an invalid response from an upstream server. |
Misconfigured reverse proxy or overloaded hosting. |
|
503 |
Service Unavailable |
The server is temporarily unable to handle the request (overload or maintenance). |
A site in maintenance mode, or a traffic spike overwhelming the host. |
|
504 |
Gateway Timeout |
A gateway/proxy did not get a timely response from an upstream server. |
A slow database query or an overloaded host taking too long to respond. |
As a rule of thumb: 2xx means success, 3xx means 'look elsewhere', 4xx means the client (browser/user) made a mistake or lacks permission, and 5xx means the server itself failed. When a client reports 'the site is down,' checking the status code in DevTools' Network tab (Module 1 Practical) is always the first diagnostic step.