Status codes tell us if a request to a server worked or not. They give a quick answer without needing to read the full message.
When you want to know if a webpage loaded successfully.
When an app sends data to a server and needs to know if it was saved.
When checking if a login attempt was accepted or denied.
When a server needs to tell a client that something went wrong.
When you want to handle different results differently in your code.
Syntax
Rest API
HTTP/1.1200 OK
HTTP/1.1404 Not Found
HTTP/1.1500 Internal Server Error
Status codes are 3-digit numbers sent by the server.
The first digit groups the type of response (e.g., 2xx means success, 4xx means client error).
Examples
This means the request was successful and the server is sending the requested data.
Rest API
HTTP/1.1200 OK
This means the server could not find the requested page or resource.
Rest API
HTTP/1.1404 Not Found
This means something went wrong on the server side.
Rest API
HTTP/1.1500 Internal Server Error
Sample Program
This simple server sends a 200 status code with a message when you visit the root URL. For any other URL, it sends a 404 status code.
Rest API
from http.server import BaseHTTPRequestHandler, HTTPServer
class SimpleHandler(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write(b'Hello, world!')
else:
self.send_response(404)
self.end_headers()
if __name__ == '__main__':
server = HTTPServer(('localhost', 8000), SimpleHandler)
print('Server running on http://localhost:8000')
server.serve_forever()
OutputSuccess
Important Notes
Always check status codes to understand what happened with your request.
Different status codes help your app respond correctly to success or errors.
Summary
Status codes quickly tell if a server request worked or failed.
They use 3-digit numbers grouped by type (success, error, etc.).
Using status codes helps apps handle responses properly.
Practice
(1/5)
1. What is the main purpose of HTTP status codes in REST APIs?
easy
A. To style the webpage content
B. To communicate the outcome of a server request
C. To store user data on the server
D. To encrypt the data sent between client and server
Solution
Step 1: Understand the role of status codes
Status codes are 3-digit numbers sent by the server to tell the client if the request was successful or if there was an error.
Step 2: Identify the correct purpose
They do not style content, store data, or encrypt data; their main job is to communicate the outcome of the request.
Final Answer:
To communicate the outcome of a server request -> Option B
Quick Check:
Status codes = communicate outcome [OK]
Hint: Status codes show if request worked or failed [OK]
Common Mistakes:
Thinking status codes style pages
Confusing status codes with data storage
Assuming status codes encrypt data
2. Which of the following is the correct syntax to send a 404 status code in a REST API response?
easy
A. response.status(404).send('Not Found')
B. response.code(404).send('Not Found')
C. response.sendStatus(200)
D. response.statusCode(500).send('Error')
Solution
Step 1: Recall correct method to set status code
In many REST frameworks, the method to set status code is status(), not code() or statusCode().
Step 2: Match status code and message
404 means 'Not Found', so response.status(404).send('Not Found') is correct syntax.
Final Answer:
response.status(404).send('Not Found') -> Option A
Quick Check:
Use status() to set code [OK]
Hint: Use response.status(code) to set HTTP status [OK]
Common Mistakes:
Using response.code() instead of response.status()
Sending wrong status code for error
Mixing status code and message methods
3. Consider this code snippet in a REST API handler:
if (userFound) {
res.status(200).json({ message: 'User found' });
} else {
res.status(404).json({ error: 'User not found' });
}
What will be the HTTP status code if the user is not found?
medium
A. 500
B. 200
C. 404
D. 400
Solution
Step 1: Analyze the condition when user is not found
If userFound is false, the else block runs, sending status 404.
Step 2: Identify the status code sent in else block
The else block uses res.status(404), which means 'Not Found'.
Final Answer:
404 -> Option C
Quick Check:
User missing = 404 status [OK]
Hint: 404 means resource not found [OK]
Common Mistakes:
Confusing 404 with 200 success
Assuming 500 server error instead
Mixing 400 bad request with 404
4. This REST API code tries to send a 201 status but has a bug:
res.sendStatus(201).json({ message: 'Created' });
What is the error and how to fix it?
medium
A. Change 201 to 200 to fix the bug
B. Use res.send(201).json(...) to fix it
C. No error; code works fine
D. sendStatus ends response; use res.status(201).json(...) instead
Solution
Step 1: Understand sendStatus behavior
sendStatus(201) sends the status and ends the response immediately, so chaining .json() after it causes an error.
Step 2: Correct way to send status with JSON
Use res.status(201).json(...) to set status and send JSON in one response.
Final Answer:
sendStatus ends response; use res.status(201).json(...) instead -> Option D
Quick Check:
sendStatus ends response; use status() + json() [OK]
Hint: sendStatus ends response; use status() before json() [OK]
Common Mistakes:
Chaining json() after sendStatus()
Using send(201) instead of status(201)
Changing status code instead of fixing method
5. You want your REST API to return a 204 status code when a DELETE request succeeds but with no content in the response body. Which code snippet correctly implements this?
hard
A. res.status(204).send();
B. res.status(204).json({ message: 'Deleted' });
C. res.sendStatus(204).json({ message: 'Deleted' });
D. res.status(200).send('Deleted');
Solution
Step 1: Understand 204 status meaning
204 means 'No Content', so the response must not include a body.
Step 2: Choose code that sends 204 with no body
res.status(204).send(); sends status 204 with empty body, which is correct. Sending JSON or message body breaks 204 rules.
Final Answer:
res.status(204).send(); -> Option A
Quick Check:
204 = no content, so send empty response [OK]
Hint: 204 means no content; send empty response [OK]
Common Mistakes:
Sending JSON body with 204 status
Using 200 instead of 204 for delete success
Chaining json() after sendStatus(204)
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.