Bird
Raised Fist0
Rest APIprogramming~20 mins

Why caching reduces server load in Rest API - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Caching Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does caching reduce server load?

Imagine a busy coffee shop where many customers order the same drink. Instead of making each drink from scratch every time, the barista prepares a batch in advance. How does this idea relate to caching in REST APIs?

Choose the best explanation for why caching reduces server load.

ACaching stores responses so the server can skip processing repeated requests, reducing work and speeding up responses.
BCaching increases server load by storing extra data and making the server check the cache for every request.
CCaching forces the server to process every request twice, once for the cache and once for the client.
DCaching deletes old data from the server, which reduces the amount of data the server holds.
Attempts:
2 left
💡 Hint

Think about how reusing prepared data saves time and effort.

❓ Predict Output
intermediate
2:00remaining
Output of caching simulation code

Consider this Python code simulating a simple cache for API responses. What is the output?

Rest API
cache = {}
def get_data(key):
    if key in cache:
        return f"Cache hit: {cache[key]}"
    else:
        data = f"Data for {key}"
        cache[key] = data
        return f"Cache miss: {data}"

print(get_data('user1'))
print(get_data('user1'))
print(get_data('user2'))
A
Cache hit: Data for user1
Cache miss: Data for user1
Cache hit: Data for user2
B
Cache hit: Data for user1
Cache hit: Data for user1
Cache hit: Data for user2
C
Cache miss: Data for user1
Cache miss: Data for user1
Cache miss: Data for user2
D
Cache miss: Data for user1
Cache hit: Data for user1
Cache miss: Data for user2
Attempts:
2 left
💡 Hint

Check when the cache is empty and when it has stored data.

🔧 Debug
advanced
2:00remaining
Identify the error causing cache to not reduce server load

This code tries to cache API responses but does not reduce server load as expected. What is the main problem?

Rest API
cache = {}
def fetch_data(key):
    if key not in cache:
        data = f"Data for {key}"
    cache[key] = data
    return cache[key]

print(fetch_data('item1'))
print(fetch_data('item1'))
AVariable 'data' is used before assignment when key is in cache, causing a runtime error.
BCache is never updated because the condition is wrong, so it always fetches new data.
CThe function always returns None because it lacks a return statement.
DThe cache dictionary is cleared after each call, so caching does not work.
Attempts:
2 left
💡 Hint

Look at what happens when the key is already in the cache.

📝 Syntax
advanced
2:00remaining
Which code snippet correctly implements caching?

Which of the following Python code snippets correctly implements a cache to reduce server load?

A
cache = {}
def get_response(key):
    if key not in cache:
        response = f"Response for {key}"
    cache[key] = response
    return cache[key]
B
cache = []
def get_response(key):
    if key in cache:
        return cache[key]
    response = f"Response for {key}"
    cache.append(response)
    return response
C
cache = {}
def get_response(key):
    if key in cache:
        return cache[key]
    response = f"Response for {key}"
    cache[key] = response
    return response
D
cache = {}
def get_response(key):
    response = f"Response for {key}"
    cache[key] = response
    if key in cache:
        return cache[key]
Attempts:
2 left
💡 Hint

Check which code stores and returns cached data properly.

🚀 Application
expert
2:00remaining
Calculate server load reduction with caching

A server receives 1000 identical requests per minute. Without caching, each request takes 50ms of server processing time. With caching, 80% of requests are served from cache instantly (0ms processing), and 20% require full processing.

What is the total server processing time per minute with caching?

A1000 ms
B10000 ms
C50000 ms
D40000 ms
Attempts:
2 left
💡 Hint

Calculate time for cached and non-cached requests separately, then add.

Practice

(1/5)
1. Why does caching reduce the load on a server when handling REST API requests?
easy
A. Because it forces the server to recalculate data every time
B. Because it increases the number of requests the server must process
C. Because it deletes data from the server to free up space
D. Because it stores copies of responses to serve repeated requests faster

Solution

  1. Step 1: Understand caching purpose

    Caching saves copies of data or responses so the server doesn't have to create them again for repeated requests.
  2. Step 2: Effect on server load

    By serving stored copies, the server avoids extra processing, reducing its workload.
  3. Final Answer:

    Because it stores copies of responses to serve repeated requests faster -> Option D
  4. Quick Check:

    Caching reduces server work = D [OK]
Hint: Caching saves repeated work by storing data copies [OK]
Common Mistakes:
  • Thinking caching increases server calculations
  • Confusing caching with deleting data
  • Believing caching forces recalculation every time
2. Which HTTP header is commonly used to control caching behavior in REST APIs?
easy
A. Cache-Control
B. Authorization
C. Content-Type
D. User-Agent

Solution

  1. Step 1: Identify caching headers

    The HTTP header that controls caching rules is named Cache-Control.
  2. Step 2: Verify other headers

    Authorization is for security, Content-Type defines data format, and User-Agent identifies the client.
  3. Final Answer:

    Cache-Control -> Option A
  4. Quick Check:

    Cache header = Cache-Control [OK]
Hint: Cache-Control header manages caching rules [OK]
Common Mistakes:
  • Choosing Authorization for caching
  • Confusing Content-Type with caching control
  • Selecting User-Agent instead of cache header
3. Consider this REST API server with caching enabled. What will be the output of the following sequence?
1. Client requests resource A (not cached)
2. Server processes and caches response for A
3. Client requests resource A again
4. Server returns cached response
What happens at step 4?
medium
A. Server returns the cached response instantly without processing
B. Server processes resource A again and returns new response
C. Server returns an error because cache is empty
D. Server delays response to check for updates

Solution

  1. Step 1: Understand caching steps

    At first request, server processes and caches the response. On the second request, the cached response is available.
  2. Step 2: Behavior at repeated request

    Server returns the cached response immediately without reprocessing, speeding up response time.
  3. Final Answer:

    Server returns the cached response instantly without processing -> Option A
  4. Quick Check:

    Cached response served = A [OK]
Hint: Cached data skips processing on repeat requests [OK]
Common Mistakes:
  • Thinking server recalculates every time
  • Assuming cache is empty on second request
  • Believing server delays to check updates
4. A developer added caching to their REST API but notices stale data is served too long. What is the likely cause?
medium
A. Cache is disabled in the server
B. Server is not processing requests
C. Cache expiration time is set too high
D. Client is not sending requests

Solution

  1. Step 1: Identify stale data cause

    If cached data stays too long, it means the cache expiration or max-age is set too high, so data is not refreshed often.
  2. Step 2: Check other options

    Cache disabled means no caching, so no stale data. Server not processing or client not sending requests would cause no responses, not stale data.
  3. Final Answer:

    Cache expiration time is set too high -> Option C
  4. Quick Check:

    Long cache time = stale data = B [OK]
Hint: Long cache expiration causes stale data [OK]
Common Mistakes:
  • Assuming cache is off when stale data appears
  • Blaming server or client inactivity
  • Ignoring cache expiration settings
5. You want to reduce server load by caching REST API responses but also ensure data freshness. Which strategy best balances these needs?
hard
A. Cache responses indefinitely without validation
B. Set a short cache expiration and use conditional requests with ETag headers
C. Disable caching completely to always get fresh data
D. Only cache error responses to reduce load

Solution

  1. Step 1: Understand caching and freshness tradeoff

    Short cache expiration limits stale data time. Conditional requests with ETag let server confirm if data changed before sending full response.
  2. Step 2: Evaluate other options

    Disabling caching increases load. Indefinite caching causes stale data. Caching only errors doesn't reduce load effectively.
  3. Final Answer:

    Set a short cache expiration and use conditional requests with ETag headers -> Option B
  4. Quick Check:

    Short cache + ETag = freshness + load reduction = C [OK]
Hint: Use short cache and ETag for freshness and efficiency [OK]
Common Mistakes:
  • Disabling caching to fix freshness
  • Caching forever without validation
  • Caching only error responses
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard