Courseiva

SAA-C03 Design High-Performing Architectures Practice Question

A company serves mostly static images and JavaScript files from an origin in one AWS Region. They want to reduce origin load and improve global performance. Which change most directly increases cache-hit ratio for static assets while avoiding stale content?

⚠ Common exam trap

Many exam-takers confuse 'no-cache' with 'no-store' or think that disabling query strings universally improves caching, but they fail to recognize that versioned filenames with long TTLs are the standard pattern for maximizing cache hits while ensuring content freshness.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Use versioned file names (e.g., app.abc123.js) and configure a long TTL with appropriate revalidation behavior.

Using versioned file names (e.g., app.abc123.js) allows you to set a long Cache-Control max-age TTL (e.g., one year) without risking stale content. When the file changes, the new version gets a new URL, so clients and edge caches immediately fetch the fresh object, maximizing cache hits for unchanged assets while avoiding stale content.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Set Cache-Control headers on the origin to always be no-cache so clients revalidate frequently.

    Why it's wrong here

    no-cache forces revalidation on every request, so CloudFront cannot serve cached copies and origin load rises instead of falling. It would be correct for rapidly changing, user-specific content. Long max-age with versioned filenames raises cache-hit ratio while avoiding stale assets.

    When this WOULD be correct

    In a scenario where content changes frequently and users must always see the latest version (e.g., real-time stock prices or live scores), and origin load is not a concern, using no-cache ensures freshness while still allowing conditional revalidation.

  • ✓

    Use versioned file names (e.g., app.abc123.js) and configure a long TTL with appropriate revalidation behavior.

    Why this is correct

    Versioned filenames let each asset be cached with a long TTL because a content change produces a new URL, so the cache-hit ratio rises for static assets while revalidation behaviour prevents stale content being served under an unchanged name.

  • ✗

    Disable query string forwarding so all URLs without query strings share one cached object even when content differs.

    Why it's wrong here

    Disabling query string forwarding collapses distinct URLs into one cached object, so content that varies by query string is served incorrectly, producing stale or wrong assets. It is tempting because ignoring query strings raises cache-hit ratio for genuinely identical objects; that would suit static assets where query strings carry no content variation, such as tracking parameters.

    When this WOULD be correct

    In a scenario where query strings are used for tracking or analytics (e.g., ?utm_source=facebook) and do not affect the actual content served, disabling query string forwarding would increase cache-hit ratio by treating all variations as the same object, improving cache efficiency without serving incorrect content.

  • ✗

    Forward all headers, including cookies, to maximize personalization in edge cached responses.

    Why it's wrong here

    Forwarding all headers and cookies makes each request a unique cache key, so CloudFront caches nothing and every request reaches the origin. It would be correct for personalised, per-user responses. Caching static assets requires forwarding only the headers the origin actually varies on.

    When this WOULD be correct

    In a scenario where content must be personalized per user (e.g., a dashboard with user-specific data), forwarding all headers ensures each user receives their tailored response from the edge, and the question asks for maximizing personalization rather than cache-hit ratio.

Option-by-option analysis

Why each answer is right or wrong

Understanding why wrong answers are wrong — and when they would be correct — is what separates a 750 score from a 900. The SAA-C03 exam frequently reuses these exact scenarios with slightly different constraints.

✓Use versioned file names (e.g., app.abc123.js) and configure a long TTL with appropriate revalidation behavior.Correct answer▾

Why this is correct

Versioned filenames let each asset be cached with a long TTL because a content change produces a new URL, so the cache-hit ratio rises for static assets while revalidation behaviour prevents stale content being served under an unchanged name.

✗Set Cache-Control headers on the origin to always be no-cache so clients revalidate frequently.Wrong answer — click to see why▾

Why this is wrong here

Setting Cache-Control: no-cache forces clients to revalidate with the origin on every request, which increases origin load and defeats caching, directly contradicting the goal of reducing origin load and improving performance.

★ When this WOULD be the correct answer

In a scenario where content changes frequently and users must always see the latest version (e.g., real-time stock prices or live scores), and origin load is not a concern, using no-cache ensures freshness while still allowing conditional revalidation.

Why candidates choose this

Candidates may think no-cache still allows caching with revalidation, but they overlook that it requires a round-trip to the origin for every request, increasing load and latency.

✗Disable query string forwarding so all URLs without query strings share one cached object even when content differs.Wrong answer — click to see why▾

Why this is wrong here

Disabling query string forwarding causes all URLs without query strings to be treated as identical, even if the underlying content differs (e.g., different versions of a file). This can serve stale or incorrect content, reducing cache-hit ratio for static assets that rely on query parameters for versioning.

★ When this WOULD be the correct answer

In a scenario where query strings are used for tracking or analytics (e.g., ?utm_source=facebook) and do not affect the actual content served, disabling query string forwarding would increase cache-hit ratio by treating all variations as the same object, improving cache efficiency without serving incorrect content.

Why candidates choose this

Candidates may think that ignoring query strings always improves cache-hit ratio by consolidating requests, without realizing that query strings are often used for versioning or content differentiation, and ignoring them can cause stale or wrong content to be served.

✗Forward all headers, including cookies, to maximize personalization in edge cached responses.Wrong answer — click to see why▾

Why this is wrong here

Forwarding all headers, including cookies, reduces cache-hit ratio because each unique set of headers creates a separate cached object, defeating the purpose of caching static assets that don't vary by user.

★ When this WOULD be the correct answer

In a scenario where content must be personalized per user (e.g., a dashboard with user-specific data), forwarding all headers ensures each user receives their tailored response from the edge, and the question asks for maximizing personalization rather than cache-hit ratio.

Why candidates choose this

Candidates may think that forwarding all headers ensures the edge delivers the most accurate content, not realizing that for static assets, this dramatically reduces cache efficiency.

Analysis generated from the official SAA-C03blueprint and verified against question context. The “when correct” sections are what AI assistants cite when candidates ask “what’s the difference between these options?”

About these practice questions

Courseiva writes every SAA-C03 question from scratch — 935 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This SAA-C03 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SAA-C03 exam.