Bird
Raised Fist0
Azurecloud~10 mins

CDN caching rules in Azure - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set the default caching behavior in Azure CDN.

Azure
cdnEndpoint.DefaultCacheBehavior = new CacheBehavior { CacheDuration = TimeSpan.FromSeconds([1]) };
Drag options to blanks, or click blank then click option'
A60
B3600
C86400
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 disables caching, which is not default.
Using very large values may cause stale content.
2fill in blank
medium

Complete the code to add a caching rule that bypasses caching for query strings.

Azure
cdnEndpoint.CachingRules.Add(new CachingRule { QueryStringCachingBehavior = [1] });
Drag options to blanks, or click blank then click option'
ABypassCache
BIgnoreQueryString
CUseQueryString
DCacheEveryQueryString
Attempts:
3 left
💡 Hint
Common Mistakes
Using IgnoreQueryString caches ignoring query strings, not bypassing.
UseQueryString caches based on query strings.
3fill in blank
hard

Fix the error in setting the cache duration to 2 hours in Azure CDN caching rule.

Azure
cachingRule.CacheDuration = TimeSpan.FromSeconds([1]);
Drag options to blanks, or click blank then click option'
A3600
B7200
C120
D14400
Attempts:
3 left
💡 Hint
Common Mistakes
Using 120 seconds equals 2 minutes, not 2 hours.
Using 3600 seconds equals 1 hour.
4fill in blank
hard

Fill both blanks to configure a caching rule that caches only if the request method is GET and the response status code is 200.

Azure
cachingRule.MatchConditions.Add(new RequestMethodCondition { Method = "[1]" });
cachingRule.MatchConditions.Add(new ResponseStatusCodeCondition { StatusCode = [2] });
Drag options to blanks, or click blank then click option'
AGET
BPOST
C200
D404
Attempts:
3 left
💡 Hint
Common Mistakes
Using POST method is not cacheable by default.
Using 404 status code caches error pages.
5fill in blank
hard

Fill all three blanks to create a caching rule that caches content for 30 minutes, ignores query strings, and caches only for GET requests.

Azure
var cachingRule = new CachingRule {
  CacheDuration = TimeSpan.FromSeconds([1]),
  QueryStringCachingBehavior = "[2]",
  MatchConditions = { new RequestMethodCondition { Method = "[3]" } }
};
Drag options to blanks, or click blank then click option'
A1800
BIgnoreQueryString
CGET
DBypassCache
Attempts:
3 left
💡 Hint
Common Mistakes
Using BypassCache disables caching for query strings.
Using POST method is not cacheable by default.

Practice

(1/5)
1. What is the primary purpose of CDN caching rules in Azure CDN?
easy
A. To monitor server CPU usage
B. To encrypt data between client and server
C. To control how content is stored and served from CDN servers
D. To manage user authentication

Solution

  1. Step 1: Understand CDN caching rules

    CDN caching rules define how content is cached and delivered by CDN servers.
  2. Step 2: Identify the main goal

    The main goal is to improve speed and reduce load by controlling content storage and delivery.
  3. Final Answer:

    To control how content is stored and served from CDN servers -> Option C
  4. Quick Check:

    CDN caching rules = control content caching [OK]
Hint: Caching rules control content storage and delivery [OK]
Common Mistakes:
  • Confusing caching with encryption
  • Thinking caching manages authentication
  • Assuming caching monitors server CPU
2. Which Azure CDN caching rule syntax correctly sets a cache duration of 3600 seconds for all images?
easy
A. cache-duration: 3600; match: *.jpg, *.png
B. cache-control: max-age=3600; match: *.jpg, *.png
C. cache-control: max-age=3600; match: images/*
D. cache-duration: max-age=3600; match: images/*

Solution

  1. Step 1: Identify correct cache-control syntax

    Azure CDN uses 'cache-control: max-age=seconds' to set cache duration.
  2. Step 2: Match correct file patterns

    Images are matched by extensions like '*.jpg, *.png' not 'images/*'.
  3. Final Answer:

    cache-control: max-age=3600; match: *.jpg, *.png -> Option B
  4. Quick Check:

    cache-control max-age + correct pattern = cache-control: max-age=3600; match: *.jpg, *.png [OK]
Hint: Use 'cache-control: max-age' with file extensions for images [OK]
Common Mistakes:
  • Using 'cache-duration' instead of 'cache-control'
  • Using folder pattern 'images/*' instead of file extensions
  • Mixing syntax keywords incorrectly
3. Given this Azure CDN caching rule:
cache-control: max-age=0; match: /api/*
What will happen when a user requests /api/data?
medium
A. Content will be blocked by CDN
B. Content will be cached indefinitely
C. Content will be cached for 3600 seconds
D. Content will be cached for 0 seconds, forcing CDN to fetch fresh data every time

Solution

  1. Step 1: Interpret max-age=0 meaning

    max-age=0 means no caching; content is always fresh.
  2. Step 2: Apply rule to /api/* path

    Requests to /api/data match /api/*, so caching is disabled.
  3. Final Answer:

    Content will be cached for 0 seconds, forcing CDN to fetch fresh data every time -> Option D
  4. Quick Check:

    max-age=0 disables caching = Content will be cached for 0 seconds, forcing CDN to fetch fresh data every time [OK]
Hint: max-age=0 means no caching, always fresh content [OK]
Common Mistakes:
  • Assuming max-age=0 caches content indefinitely
  • Confusing path matching syntax
  • Thinking content is blocked
4. You wrote this Azure CDN caching rule:
cache-control max-age=600; match: *.css
But it does not work as expected. What is the error?
medium
A. Missing colon after 'cache-control'
B. Incorrect file extension pattern
C. max-age value too low
D. Match pattern should be a full URL

Solution

  1. Step 1: Check syntax for cache-control

    The correct syntax requires a colon after 'cache-control', like 'cache-control: max-age=600'.
  2. Step 2: Validate other parts

    File extension '*.css' is correct; max-age=600 is valid; match pattern does not require full URL.
  3. Final Answer:

    Missing colon after 'cache-control' -> Option A
  4. Quick Check:

    Syntax error: missing colon = Missing colon after 'cache-control' [OK]
Hint: Remember colon after 'cache-control:' in rules [OK]
Common Mistakes:
  • Omitting colon after 'cache-control'
  • Using wrong file patterns
  • Thinking max-age value causes failure
5. You want to optimize caching for a website with static images and dynamic API data. Which Azure CDN caching rules setup is best?
hard
A. Set cache-control: max-age=86400 for images (*.jpg, *.png) and cache-control: max-age=0 for API (/api/*)
B. Set cache-control: max-age=0 for all content
C. Set cache-control: max-age=3600 for all content
D. Set cache-control: max-age=86400 for API and cache-control: max-age=0 for images

Solution

  1. Step 1: Understand content types and caching needs

    Static images benefit from long caching (86400 seconds = 1 day). Dynamic API data needs fresh content, so max-age=0.
  2. Step 2: Match rules to content paths

    Apply long cache to image extensions (*.jpg, *.png) and no cache to API paths (/api/*).
  3. Final Answer:

    Set cache-control: max-age=86400 for images (*.jpg, *.png) and cache-control: max-age=0 for API (/api/*) -> Option A
  4. Quick Check:

    Static long cache + dynamic no cache = Set cache-control: max-age=86400 for images (*.jpg, *.png) and cache-control: max-age=0 for API (/api/*) [OK]
Hint: Long cache for static, no cache for dynamic content [OK]
Common Mistakes:
  • Caching dynamic API data too long
  • Not differentiating static and dynamic content
  • Reversing cache durations for content types