B. Cache the response for 0 seconds and never revalidate
C. Cache the response indefinitely without revalidation
D. Cache the response for 0 seconds and revalidate before each use
Solution
Step 1: Understand the meaning of no-cache and max-age=0
The no-cache directive means the browser must revalidate with the server before using the cached response. max-age=0 means the cached response is immediately stale.
Step 2: Combine the effects
With no-cache and max-age=0, the browser caches the response but must check with the server before each use, effectively caching for 0 seconds without skipping validation.
Final Answer:
Cache the response for 0 seconds and revalidate before each use -> Option D
Quick Check:
no-cache + max-age=0 = revalidate every time [OK]
Hint: no-cache means revalidate before use [OK]
Common Mistakes:
Thinking no-cache means no caching at all
Ignoring max-age=0 effect
Assuming browser ignores these headers
4. You wrote this Node.js code to prevent caching:
But the browser still caches the response. What is the likely mistake?
medium
A. The 'no-store' directive is misspelled
B. The response status code is missing
C. Headers are set after sending the response body
D. The Cache-Control header should be lowercase
Solution
Step 1: Check header setting timing
Headers must be set before sending the response body. If headers are set after calling res.end(), they won't be sent.
Step 2: Confirm header spelling and case
Cache-Control is case-insensitive and 'no-store' is spelled correctly, so these are not issues.
Step 3: Status code is optional for caching headers
Missing status code does not cause caching issues here.
Final Answer:
Headers are set after sending the response body -> Option C
Quick Check:
Set headers before res.end() [OK]
Hint: Set headers before sending response body [OK]
Common Mistakes:
Setting headers after res.end()
Misspelling cache directives
Assuming header case matters
5. You want to serve a JSON API response that should never be cached by browsers or proxies. Which combination of HTTP caching headers in Node.js ensures this behavior?
hard
A. res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate')
B. res.setHeader('Cache-Control', 'max-age=3600')
C. res.setHeader('Cache-Control', 'public, max-age=86400')
D. res.setHeader('Cache-Control', 'private, max-age=0')
Solution
Step 1: Understand no-store and no-cache directives
no-store prevents any caching anywhere. no-cache forces revalidation. must-revalidate requires caches to obey freshness rules strictly.
Step 2: Analyze each option
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate') combines all directives to prevent caching fully. res.setHeader('Cache-Control', 'max-age=3600') and C allow caching. res.setHeader('Cache-Control', 'private, max-age=0') allows private caching but with max-age=0, which still permits revalidation.
Final Answer:
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate') -> Option A
Quick Check:
no-store + no-cache = no caching [OK]
Hint: Use no-store to fully prevent caching [OK]
Common Mistakes:
Using max-age allowing caching
Confusing private with no-store
Omitting must-revalidate for strictness
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.