CDN (Content Delivery Network)
What is a CDN?
A Content Delivery Network is a geographically distributed network of proxy servers that deliver content to users from the server closest to their location, reducing latency and improving load times.
How CDN Works
Basic Architecture
Origin Server (Virginia)
↓
CDN Provider Network
↙ ↓ ↘
Edge Servers Worldwide
↙ ↓ ↘
Users in Different Regions
Content Delivery Flow
-
First Request (Cache Miss)
User → Nearest Edge Server → Origin Server
↓
Cache Content
↓
Serve to User -
Subsequent Requests (Cache Hit)
User → Nearest Edge Server → Serve from Cache
Types of CDN
Push CDN
- Content is proactively pushed to edge servers
- Developer uploads content to CDN
- Better for sites with predictable content
- Example: Static site generators
Pull CDN
- Content is fetched on first request (lazy loading)
- Automatic cache population
- Better for dynamic or unpredictable content
- Example: User-generated content
CDN Components
1. Points of Presence (PoPs)
- Physical data center locations
- Contains multiple edge servers
- Strategically placed globally
- Connected via high-speed backbone
2. Edge Servers
- Cache and serve content
- Handle user requests
- Perform edge computing
- SSL termination
3. Origin Server
- Master copy of content
- Source of truth
- Handles cache misses
- Processes dynamic requests
4. DNS Infrastructure
- GeoDNS for location-based routing
- Anycast IP addresses
- Health monitoring
- Automatic failover
Content Types Served
Static Content
- Images (JPEG, PNG, WebP, SVG)
- CSS stylesheets
- JavaScript files
- Fonts (WOFF, TTF)
- Videos (MP4, WebM)
- Documents (PDF)
Dynamic Content (Modern CDNs)
- API responses (with careful cache headers)
- Personalized content (edge computing)
- Real-time data (WebSocket proxying)
Benefits of CDN
1. Performance
- Reduced Latency: ~50-70% improvement
- Faster Load Times: 2-3x faster page loads
- Better User Experience: Lower bounce rates
- Bandwidth Optimization: Compression and optimization
2. Availability
- Redundancy: Multiple server locations
- Failover: Automatic rerouting
- Load Distribution: Prevents origin overload
- 100% Uptime: Even during origin failures
3. Scalability
- Traffic Spikes: Handle sudden load increases
- Global Reach: Serve users worldwide
- Elastic Capacity: Auto-scaling
- Cost Effective: Pay-per-use model
4. Security
- DDoS Protection: Absorb attack traffic
- WAF Integration: Web application firewall
- SSL/TLS: Certificate management
- Bot Protection: Filter malicious traffic
Caching Strategies
Cache Headers
Cache-Control: public, max-age=31536000, immutable
ETag: "33a64df551"
Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT
Expires: Thu, 31 Dec 2024 23:59:59 GMT
Cache Invalidation Methods
- TTL Expiration: Natural timeout
- Purge API: Programmatic removal
- Cache Tags: Group-based invalidation
- Versioning: URL fingerprinting
/assets/style.v2.css
/assets/style.css?v=12345
Cache Levels
Browser Cache → CDN Edge Cache → CDN Shield → Origin
CDN Routing Methods
1. GeoDNS
User in Tokyo → DNS Query → Tokyo Edge Server IP
User in London → DNS Query → London Edge Server IP
2. Anycast
- Single IP address for multiple servers
- Network routes to nearest server
- Automatic failover
- Used by Cloudflare
3. Performance-Based
- Real-time performance monitoring
- Routes to fastest server
- Considers network congestion
- Dynamic optimization
Edge Computing
Edge Functions
// Cloudflare Worker example
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// Modify request
// Add authentication
// Transform response
return new Response('Hello from edge!')
}
Use Cases
- A/B testing
- Authentication
- Request modification
- Response transformation
- Bot detection
- Geolocation-based content
CDN Providers
Major Providers
-
Cloudflare
- Free tier available
- 200+ data centers
- DDoS protection included
- Edge Workers
-
AWS CloudFront
- Deep AWS integration
- 400+ PoPs
- Lambda@Edge
- Shield for DDoS
-
Akamai
- Largest network (300,000+ servers)
- Enterprise focus
- Advanced security features
- EdgeWorkers
-
Fastly
- Real-time purging
- Instant configuration changes
- Varnish-based
- Edge computing
-
Google Cloud CDN
- Google's global network
- Anycast IPs
- Cloud Armor integration
- Cache invalidation API
Implementation Best Practices
1. Asset Organization
/static/
/css/ → Long cache (1 year)
/js/ → Long cache (1 year)
/images/ → Medium cache (1 month)
/api/ → Short cache or no cache
/dynamic/ → No cache
2. URL Versioning
<!-- Bad: Browser might cache old version -->
<link rel="stylesheet" href="/style.css">
<!-- Good: Force new version -->
<link rel="stylesheet" href="/style.css?v=2.1.0">
<!-- Better: Content hash -->
<link rel="stylesheet" href="/style.abc123.css">
3. Cache Headers Strategy
# Static assets (1 year)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
add_header Cache-Control "public, immutable";
}
# HTML (no cache)
location ~* \.(html)$ {
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
# API responses (5 minutes)
location /api {
add_header Cache-Control "public, max-age=300";
}
Performance Metrics
Key Metrics
- Cache Hit Ratio: >90% is good
- Bandwidth Savings: 60-80% typical
- Origin Offload: Traffic served from edge
- TTFB: Time to first byte (<200ms good)
Monitoring
// Performance API
const perfData = performance.getEntriesByType('navigation')[0];
console.log('DNS:', perfData.domainLookupEnd - perfData.domainLookupStart);
console.log('TCP:', perfData.connectEnd - perfData.connectStart);
console.log('TTFB:', perfData.responseStart - perfData.fetchStart);
Advanced Features
1. Image Optimization
Original: image.jpg (500KB)
↓
CDN Transforms:
- Resize: image.jpg?w=300&h=200
- Format: image.webp (200KB)
- Quality: image.jpg?q=85
2. Video Streaming
- Adaptive bitrate streaming
- HLS/DASH protocols
- Chunk caching
- Live streaming support
3. Security Features
# Security headers added by CDN
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self'
4. Load Balancing
CDN Edge → Multiple Origins
↙ ↘
Primary Backup
Origin Origin
Common Challenges
1. Cache Invalidation
Problem: Updated content not reflected Solutions:
- Cache busting with version numbers
- Shorter TTL for frequently changing content
- Use CDN purge API
2. CORS Issues
Problem: Cross-origin resource blocked Solution:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
3. SSL Certificate Management
Problem: Certificate errors on custom domains Solutions:
- Use CDN-provided certificates
- Upload custom certificates
- Automated renewal with Let's Encrypt
4. Dynamic Content Caching
Problem: Caching personalized content Solutions:
- Vary header for cache key
- Edge-side includes (ESI)
- Edge computing for personalization
Cost Optimization
Strategies
- Optimize Cache Headers: Higher cache hit ratio
- Compress Content: Reduce bandwidth costs
- Image Optimization: Serve appropriate sizes
- Geographic Restrictions: Limit serving regions
- Bandwidth Commitments: Volume discounts
Cost Factors
- Bandwidth usage (GB transferred)
- Number of requests
- Geographic distribution
- Additional features (WAF, DDoS)
- Storage costs
CDN vs Other Solutions
CDN vs Multiple Servers
- CDN: Automatic geographic distribution
- Multiple Servers: Manual management required
CDN vs Reverse Proxy
- CDN: Global caching network
- Reverse Proxy: Single location caching
CDN vs Cloud Storage
- CDN: Optimized for delivery
- Cloud Storage: Optimized for storage
Interview Questions
-
Q: How does a CDN improve website performance? A: Reduces latency by serving from nearest location, caches content to reduce origin load, optimizes content delivery, and provides better bandwidth.
-
Q: What's the difference between push and pull CDN? A: Push CDN requires manual content upload; Pull CDN fetches automatically on first request.
-
Q: How do you handle cache invalidation? A: Cache busting with version numbers, TTL expiration, purge APIs, or cache tags.
-
Q: When wouldn't you use a CDN? A: Highly dynamic personalized content, regulatory requirements for data locality, very small user base in single region, or cost constraints.
-
Q: How does CDN handle SSL/TLS? A: SSL termination at edge, certificate management, SNI support for multiple domains, and automated renewal.