Nginx Test Lab

60 Subdomain Configurations for HTTP Protocol Testing

Nginx 1.30.4 HTTP/3 QUIC Brotli TLS 1.3 mTLS WebDAV

Quick Access

Jump to popular test configurations

Credentials

TypeUsernamePassword
Basic Authtestusertestpass
WebDAVwebdavwebdavpass

API Keys

key-abc-123   key-xyz-789   test-api-key

mTLS Client Certificate

/etc/nginx/ssl/client.p12 (password: clientpass)

Identify Configuration

Every response includes X-Config header

# Check which config is active
curl -I https://gzip.samplefiledownload.com/
X-Config: gzip-standard
Content-Encoding: gzip

📁 Static Content Serving (1-6)

Different methods for serving static files - from basic HTTP to CDN-optimized delivery with security headers.

When to use: Testing how your application handles different file delivery methods, security headers, and download behaviors.
#SubdomainDescriptionUse CaseKey Headers
1 static HTTP Only - No HTTPS, no redirect. Plain unencrypted HTTP connection. Testing legacy systems, internal networks, or applications that don't support HTTPS No security headers
2 secure HTTPS + HSTS - Enforces HTTPS with HTTP Strict Transport Security. Browser remembers to always use HTTPS. Production websites, compliance testing, security audits Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options
3 stream Streaming Mode - Uses sendfile() for efficient kernel-level file transfer. Buffering disabled for real-time streaming. Video/audio streaming, large file transfers, real-time log tailing X-Accel-Buffering: no
4 download Force Download - Browser downloads file instead of displaying. Compression disabled to guarantee Content-Length header. File downloads, software distribution, ensuring download progress works Content-Disposition: attachment, Content-Length guaranteed
5 cdn CDN-Style - Full CORS support allowing cross-origin requests. Immutable cache headers for aggressive caching. CDN testing, cross-origin resource loading, font/asset serving Access-Control-Allow-Origin: *, Cache-Control: immutable
6 view Inline Viewing - Browser displays file instead of downloading. PDFs open in browser, images display directly. Document previews, image galleries, PDF viewers Content-Disposition: inline

cURL Examples

# Compare download vs view behavior
curl -I https://download.samplefiledownload.com/files/sample.pdf
Content-Disposition: attachment; filename="sample.pdf"

curl -I https://view.samplefiledownload.com/files/sample.pdf
Content-Disposition: inline

# Check HSTS header
curl -I https://secure.samplefiledownload.com/
Strict-Transport-Security: max-age=31536000; includeSubDomains

# Test CORS headers
curl -I -H "Origin: https://example.com" https://cdn.samplefiledownload.com/files/sample.js
Access-Control-Allow-Origin: *

🌐 HTTP Protocol Versions (7-13)

Test different HTTP protocol versions from legacy HTTP/1.0 to modern HTTP/3 (QUIC). Essential for compatibility testing and performance optimization.

Why it matters: Different HTTP versions have different performance characteristics. HTTP/2 adds multiplexing, HTTP/3 uses UDP for faster connections. Testing ensures your client handles all versions correctly.
#SubdomainDescriptionUse CaseConnection Type
7 legacy HTTP/1.0 - Original HTTP protocol. No persistent connections, each request opens new TCP connection. Testing compatibility with very old clients, embedded systems, legacy APIs Connection: close after each request
8 h1 HTTP/1.1 - Persistent connections (keepalive), chunked transfer encoding, host headers required. Standard web traffic, most common protocol, broad compatibility TCP + TLS, keepalive enabled
9 h2 HTTP/2 - Binary protocol with multiplexing (multiple requests over single connection), header compression, server push. Modern web applications, improved performance for multiple assets TCP + TLS + ALPN negotiation
10 h2c HTTP/2 Cleartext - HTTP/2 without TLS encryption. Rarely used, most browsers don't support it. Internal services, testing HTTP/2 without certificate setup TCP only, no encryption
11 h3 HTTP/3 with Fallback - Uses QUIC (UDP-based). Falls back to HTTP/2 if client doesn't support. Advertises via Alt-Svc header. Cutting-edge performance, mobile networks, high-latency connections QUIC (UDP) + TLS 1.3, Alt-Svc header
12 quic QUIC Only - HTTP/3 without fallback. Connection fails if client doesn't support QUIC. Testing QUIC-specific behavior, HTTP/3 compliance testing QUIC (UDP) only
13 auto Auto-Negotiate - Server and client negotiate best available protocol. Supports all versions. General testing, let protocol be chosen automatically Best available (HTTP/3 → HTTP/2 → HTTP/1.1)

cURL Examples

# Force specific HTTP versions
curl -0 http://legacy.samplefiledownload.com/files/sample.txt        # HTTP/1.0
curl --http1.1 https://h1.samplefiledownload.com/files/sample.txt  # HTTP/1.1
curl --http2 https://h2.samplefiledownload.com/files/sample.txt    # HTTP/2
curl --http3 https://h3.samplefiledownload.com/files/sample.txt    # HTTP/3

# Check which protocol is used
curl -sI https://h2.samplefiledownload.com/ -o /dev/null -w '%{http_version}\n'
2

# Check Alt-Svc header (HTTP/3 advertisement)
curl -I https://h3.samplefiledownload.com/ | grep -i alt-svc
Alt-Svc: h3=":443"; ma=86400

# HTTP/2 cleartext (prior knowledge mode)
curl --http2-prior-knowledge http://h2c.samplefiledownload.com/files/sample.txt

🗜️ Compression (14-21)

Test Gzip and Brotli compression at different levels. Compare compression ratios, CPU usage, and impact on Content-Length header.

Key insight: On-the-fly compression removes the Content-Length header (uses chunked transfer instead). Use nocomp or precomp when you need accurate download progress.
#SubdomainDescriptionCompression RatioCPU UsageContent-Length
14 gzip Gzip Level 6 - Default balanced setting. Good compression with reasonable CPU usage. ~70-80% reduction Medium ❌ No (chunked)
15 gzip-max Gzip Level 9 - Maximum compression. Best ratio but highest CPU usage. ~75-85% reduction High ❌ No (chunked)
16 gzip-fast Gzip Level 1 - Fastest compression. Lower ratio but minimal CPU overhead. ~60-70% reduction Low ❌ No (chunked)
17 brotli Brotli Level 6 - Modern compression algorithm. Better ratio than gzip at same CPU cost. ~75-85% reduction Medium ❌ No (chunked)
18 brotli-max Brotli Level 11 - Maximum Brotli compression. Best possible ratio, very slow. ~80-90% reduction Very High ❌ No (chunked)
19 dual-comp Both Enabled - Server chooses based on client Accept-Encoding. Prefers Brotli if supported. Best available Medium ❌ No (chunked)
20 nocomp No Compression - Raw file transfer. Content-Length header guaranteed for download progress. 0% (no compression) None ✅ Yes
20b chunked Forced Chunked - Forces chunked transfer encoding. Download size always unknown. Minimal Low ❌ No (forced)
21 precomp Pre-compressed - Serves .gz/.br files if they exist. Best of both: compression + Content-Length. Maximum possible None (pre-done) ✅ Yes

cURL Examples

# Compare compression methods
curl -sH "Accept-Encoding: gzip" https://gzip.samplefiledownload.com/files/sample.txt | wc -c
curl -sH "Accept-Encoding: br" https://brotli.samplefiledownload.com/files/sample.txt | wc -c
curl -s https://nocomp.samplefiledownload.com/files/sample.txt | wc -c

# Check Content-Length vs Chunked
curl -I https://nocomp.samplefiledownload.com/files/large-file.bin | grep -E "Content-Length|Transfer-Encoding"
Content-Length: 10485760

curl -H "Accept-Encoding: gzip" -I https://gzip.samplefiledownload.com/files/sample.txt | grep -E "Content-Length|Transfer-Encoding"
Transfer-Encoding: chunked
Content-Encoding: gzip

🔐 TLS/SSL Configuration (22-28)

Test different TLS versions, cipher suites, and mutual TLS (client certificates). Essential for security compliance testing.

Security note: TLS 1.0 and 1.1 are deprecated. Most security standards require TLS 1.2 minimum, with TLS 1.3 preferred.
#SubdomainDescriptionSecurity LevelCompatibility
22 tls12 TLS 1.2 Only - Widely supported, meets most compliance requirements (PCI-DSS, HIPAA). High Excellent (IE 11+, all modern browsers)
23 tls13 TLS 1.3 Only - Latest version with improved security and performance. Faster handshake. Highest Good (Chrome 70+, Firefox 63+, Safari 12.1+)
24 tls13-0rtt TLS 1.3 + 0-RTT - Zero Round Trip Time resumption. Faster reconnection but vulnerable to replay attacks. High (replay risk) Good
25 mtls Mutual TLS (Required) - Client must present valid certificate. Returns 400 without cert. Highest Requires client certificate
26 mtls-optional Mutual TLS (Optional) - Accepts client certificate if provided, works without one too. High Universal
27 strong-cipher 256-bit Ciphers Only - AES-256-GCM only. Maximum encryption strength. Highest Good (modern clients)
28 ocsp OCSP Stapling - Server provides certificate revocation status. Faster than client OCSP lookup. High Excellent

cURL Examples

# Test TLS version
curl -v --tlsv1.2 --tls-max 1.2 https://tls12.samplefiledownload.com/ 2>&1 | grep "SSL connection"
SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384

curl -v --tlsv1.3 https://tls13.samplefiledownload.com/ 2>&1 | grep "SSL connection"
SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384

# mTLS without certificate (fails)
curl https://mtls.samplefiledownload.com/
400 Bad Request - No required SSL certificate was sent

# mTLS with certificate
curl --cert /etc/nginx/ssl/client.crt --key /etc/nginx/ssl/client.key https://mtls.samplefiledownload.com/
curl --cert-type P12 --cert /etc/nginx/ssl/client.p12:clientpass https://mtls.samplefiledownload.com/

💾 Caching Strategies (29-35)

Test different HTTP caching headers and behaviors. Learn how Cache-Control directives affect browser and CDN caching.

Cache hierarchy: Browser cache → CDN/Proxy cache → Origin server. Use max-age for browsers, s-maxage for CDNs.
#SubdomainDescriptionBrowser CacheCDN CacheKey Header
29 nocache No Caching - Prevents all caching. Every request hits origin server. ❌ None ❌ None no-store, no-cache, must-revalidate
30 private-cache Private Cache - Browser can cache, CDNs/proxies cannot. For user-specific content. ✅ 1 hour ❌ None private, max-age=3600
31 public-cache Public Cache - Both browser and CDN can cache. Different TTLs for each. ✅ 1 day ✅ 7 days public, max-age=86400, s-maxage=604800
32 swr Stale-While-Revalidate - Serve stale content immediately while fetching fresh in background. ✅ 1 hour + stale ✅ Yes stale-while-revalidate=86400
33 immutable Immutable - Content never changes. Cache forever, no revalidation. Use for versioned assets. ✅ 1 year ✅ 1 year immutable, max-age=31536000
34 etag ETag Validation - Content fingerprint for conditional requests. Returns 304 if unchanged. ✅ With validation ✅ With validation ETag: "abc123"
35 lastmod Last-Modified - Timestamp-based validation. Returns 304 if not modified since. ✅ With validation ✅ With validation Last-Modified: Wed, 01 Jan 2025...

cURL Examples

# Check cache headers
curl -I https://immutable.samplefiledownload.com/files/sample.js | grep -i cache
Cache-Control: public, max-age=31536000, immutable

# Conditional request with ETag
ETAG=$(curl -sI https://etag.samplefiledownload.com/files/sample.txt | grep -i etag | awk '{print $2}' | tr -d '\r')
curl -I -H "If-None-Match: $ETAG" https://etag.samplefiledownload.com/files/sample.txt
HTTP/1.1 304 Not Modified

# Conditional request with Last-Modified
curl -I -H "If-Modified-Since: Wed, 01 Jan 2025 00:00:00 GMT" https://lastmod.samplefiledownload.com/files/sample.txt

🔑 Authentication (36-39)

Test different authentication methods. From HTTP Basic Auth to API keys and IP whitelisting.

Credentials: Basic Auth: testuser / testpass | API Keys: key-abc-123, key-xyz-789, test-api-key
#SubdomainDescriptionAuth MethodHeader/Parameter
36 basic-auth HTTP Basic Auth - Username/password sent in Authorization header (Base64 encoded). Simple but credentials visible in logs. Username + Password Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
37 jwt-auth JWT Bearer Token - JSON Web Token in Authorization header. Stateless, contains claims. Bearer Token Authorization: Bearer eyJhbGc...
38 apikey-auth API Key Header - Simple API key in custom header. Easy to implement and rotate. API Key X-API-Key: key-abc-123
39 ip-auth IP Whitelist - Allow only specific IP addresses. No credentials needed from allowed IPs. Source IP N/A (checked server-side)

cURL Examples

# Basic Auth
curl -u testuser:testpass https://basic-auth.samplefiledownload.com/files/
curl -H "Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=" https://basic-auth.samplefiledownload.com/files/

# API Key
curl -H "X-API-Key: key-abc-123" https://apikey-auth.samplefiledownload.com/files/
curl -H "X-API-Key: wrong-key" https://apikey-auth.samplefiledownload.com/files/
401 Unauthorized

# Without auth (fails)
curl -I https://basic-auth.samplefiledownload.com/
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Restricted"

⏱️ Rate Limiting & Throttling (40-44)

Test request rate limits, connection limits, and bandwidth throttling. See how servers handle traffic spikes.

HTTP 429: "Too Many Requests" - Returned when rate limit exceeded. Check Retry-After header for wait time.
#SubdomainDescriptionLimitBurstBehavior
40 rate-ip Standard Rate Limit - Per-IP limiting with reasonable burst allowance. 10 req/sec 20 requests 429 after burst exceeded
41 rate-strict Strict Rate Limit - Very low limit for testing rate limit handling. 1 req/sec 5 requests 429 quickly
42 rate-burst High Burst - Allows traffic spikes but limits sustained rate. 100 req/sec 500 requests Handles spikes well
43 conn-limit Connection Limit - Limits concurrent connections per IP, not request rate. 10 connections N/A 503 when exceeded
44 bw-limit Bandwidth Limit - Full speed initially, then throttled. Good for fair usage. 1 MB/sec 10 MB free Slows after 10MB

cURL Examples

# Hit rate limit (strict: 1 req/sec)
for i in {1..10}; do curl -s -o /dev/null -w "%{http_code} " https://rate-strict.samplefiledownload.com/; done
200 200 200 200 200 429 429 429 429 429

# Test bandwidth limit (download large file)
curl -o /dev/null -w "Speed: %{speed_download} bytes/sec\n" https://bw-limit.samplefiledownload.com/files/large-file.bin

# Test connection limit (parallel requests)
for i in {1..15}; do curl -s https://conn-limit.samplefiledownload.com/files/sample.txt & done; wait

🔌 Connection Handling (45-51)

Test keepalive settings, timeouts, and buffer configurations. Affects connection reuse and memory usage.

Keepalive: Reusing TCP connections saves the overhead of new handshakes. Important for HTTP/1.1 performance.
#SubdomainDescriptionTimeoutMax RequestsUse Case
45 keepalive-long Long Keepalive - Connection stays open for 5 minutes. Good for frequent requests. 300 sec 1000 APIs, SPAs, frequent polling
46 keepalive-short Short Keepalive - Quick connection turnover. Frees resources faster. 5 sec 10 High-traffic, many clients
47 no-keepalive No Keepalive - Connection closes after each request. Like HTTP/1.0. 0 1 Testing, legacy compatibility
48 timeout-long Long Timeouts - Patient server, waits 5 minutes for slow clients/uploads. 300 sec all Default Large uploads, slow networks
49 timeout-short Short Timeouts - Fail fast. Drops slow connections quickly. 5 sec all Default DDoS mitigation, fast failure
50 buffer-large Large Buffers - 10MB request body buffer. For large file uploads. Default Default File uploads, large POST bodies
51 buffer-small Small Buffers - Minimal memory usage. May be slower for large requests. Default Default Memory-constrained servers

cURL Examples

# Check keepalive behavior
curl -v https://keepalive-long.samplefiledownload.com/ https://keepalive-long.samplefiledownload.com/ 2>&1 | grep -E "Re-using|Connected"
* Connected to keepalive-long.samplefiledownload.com
* Re-using existing connection

# No keepalive (new connection each time)
curl -I https://no-keepalive.samplefiledownload.com/ | grep -i connection
Connection: close

# Test timeout (will fail on timeout-short)
curl --limit-rate 100 https://timeout-short.samplefiledownload.com/files/large-file.bin

✨ Special Features (52-60)

Advanced features: secure download links, A/B testing, health checks, device detection, WebDAV, and more.

#SubdomainDescriptionFeatureUse Case
52 secure-link Secure Links - Time-limited URLs with MD5 signature. Link expires after set time. URL signing + expiration Paid downloads, temporary access, preventing hotlinking
53 canary A/B Testing - 10% traffic to canary, 90% to stable. X-Backend header shows which served. Traffic splitting Canary deployments, feature flags, gradual rollouts
54 mirror Traffic Mirroring - Copies requests to secondary server without affecting response. Request duplication Testing new backends, shadow traffic, debugging
55 reqid Request ID - Unique ID for each request. Essential for distributed tracing. X-Request-ID header Logging, debugging, tracing across microservices
56 health Health Checks - Endpoints for load balancers and monitoring. Returns server status. /health, /health/json Kubernetes probes, load balancer health checks
57 device Device Detection - Detects mobile/tablet/desktop from User-Agent header. X-Device-Type header Responsive redirects, device-specific content
58 autoindex Directory Listing - Beautiful file browser powered by DirectoryLister PHP app. File browser UI File sharing, download portals, media libraries
59 ssi Server-Side Includes - Embed dynamic content in static HTML files. SSI processing Simple templating, include headers/footers
60 webdav WebDAV Server - Full WebDAV support: upload, delete, move, copy files via HTTP. PROPFIND, MKCOL, PUT, DELETE Remote file management, network drives, backup sync

cURL Examples

# Generate secure link (bash)
SECRET="mysecret"; EXPIRES=$(($(date +%s) + 3600)); URI="/files/sample.txt"
MD5=$(echo -n "${EXPIRES}${URI} ${SECRET}" | openssl md5 -binary | base64 | tr +/ -_ | tr -d =)
curl "https://secure-link.samplefiledownload.com${URI}?md5=${MD5}&expires=${EXPIRES}"

# Check A/B backend
for i in {1..10}; do curl -sI https://canary.samplefiledownload.com/ | grep X-Backend; done
X-Backend: stable
X-Backend: stable
X-Backend: canary

# Request ID tracking
curl -I https://reqid.samplefiledownload.com/ | grep -i x-request-id
X-Request-ID: 5f4dcc3b5aa765d61d8327deb882cf99

# Health checks
curl https://health.samplefiledownload.com/health
OK
curl https://health.samplefiledownload.com/health/json
{"status":"healthy","timestamp":"2025-01-01T00:00:00Z"}

# Device detection
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0)" -I https://device.samplefiledownload.com/ | grep device
X-Device-Type: mobile

# WebDAV operations
curl -X MKCOL -u webdav:webdavpass https://webdav.samplefiledownload.com/newfolder/
curl -T myfile.txt -u webdav:webdavpass https://webdav.samplefiledownload.com/newfolder/myfile.txt
curl -X PROPFIND -u webdav:webdavpass https://webdav.samplefiledownload.com/
curl -X DELETE -u webdav:webdavpass https://webdav.samplefiledownload.com/newfolder/myfile.txt

📊 Download Size Testing (Content-Length)

When downloading files, the server may or may not send the file size. This affects whether download managers can show progress percentage.

Why does this matter?
Content-Length header = Download manager shows "45% of 10MB"
Transfer-Encoding: chunked = Download manager shows "Downloading..." (unknown size)
• On-the-fly compression prevents Content-Length because final size is unknown

Size Behavior by Subdomain

# Subdomain Content-Length Progress Bar Reason
1static✅ Yes✅ WorksNo compression
2secure✅ Yes✅ WorksNo compression
3stream✅ Yes✅ WorksSendfile, no compression
4download✅ Yes✅ WorksCompression disabled
5cdn✅ Yes✅ WorksNo compression
6view✅ Yes✅ WorksNo compression
7legacy✅ Yes✅ WorksHTTP/1.0, no compression
8h1✅ Yes✅ WorksNo compression
9h2✅ Yes✅ WorksNo compression
10h2c✅ Yes✅ WorksNo compression
11h3✅ Yes✅ WorksNo compression
12quic✅ Yes✅ WorksNo compression
13auto✅ Yes✅ WorksNo compression
14gzip❌ No❌ UnknownOn-the-fly gzip compression
15gzip-max❌ No❌ UnknownOn-the-fly gzip level 9
16gzip-fast❌ No❌ UnknownOn-the-fly gzip level 1
17brotli❌ No❌ UnknownOn-the-fly brotli compression
18brotli-max❌ No❌ UnknownOn-the-fly brotli level 11
19dual-comp❌ No❌ UnknownOn-the-fly compression
20nocomp✅ Yes✅ WorksCompression explicitly disabled
20bchunked❌ No❌ UnknownForces chunked transfer
21precomp✅ Yes✅ WorksPre-compressed .gz/.br files
22tls12✅ Yes✅ WorksNo compression
23tls13✅ Yes✅ WorksNo compression
24tls13-0rtt✅ Yes✅ WorksNo compression
25mtls✅ Yes✅ WorksNo compression
26mtls-optional✅ Yes✅ WorksNo compression
27strong-cipher✅ Yes✅ WorksNo compression
28ocsp✅ Yes✅ WorksNo compression
29nocache✅ Yes✅ WorksNo compression
30private-cache✅ Yes✅ WorksNo compression
31public-cache✅ Yes✅ WorksNo compression
32swr✅ Yes✅ WorksNo compression
33immutable✅ Yes✅ WorksNo compression
34etag✅ Yes✅ WorksNo compression
35lastmod✅ Yes✅ WorksNo compression
36basic-auth✅ Yes✅ WorksNo compression
37jwt-auth✅ Yes✅ WorksNo compression
38apikey-auth✅ Yes✅ WorksNo compression
39ip-auth✅ Yes✅ WorksNo compression
40rate-ip✅ Yes✅ WorksNo compression
41rate-strict✅ Yes✅ WorksNo compression
42rate-burst✅ Yes✅ WorksNo compression
43conn-limit✅ Yes✅ WorksNo compression
44bw-limit✅ Yes✅ WorksNo compression
45keepalive-long✅ Yes✅ WorksNo compression
46keepalive-short✅ Yes✅ WorksNo compression
47no-keepalive✅ Yes✅ WorksNo compression
48timeout-long✅ Yes✅ WorksNo compression
49timeout-short✅ Yes✅ WorksNo compression
50buffer-large✅ Yes✅ WorksNo compression
51buffer-small✅ Yes✅ WorksNo compression
52secure-link✅ Yes✅ WorksNo compression
53canary✅ Yes✅ WorksNo compression
54mirror✅ Yes✅ WorksNo compression
55reqid✅ Yes✅ WorksNo compression
56health✅ Yes✅ WorksNo compression
57device✅ Yes✅ WorksNo compression
58autoindex✅ Yes✅ WorksNo compression
59ssi✅ Yes✅ WorksNo compression
60webdav✅ Yes✅ WorksNo compression

Quick Test Commands

Test Content-Length Presence

# Shows Content-Length (progress bar works)
curl -I https://download.samplefiledownload.com/files/large-file.bin 2>/dev/null | grep -E "Content-Length|Transfer-Encoding"
Content-Length: 10485760

# No Content-Length (unknown size, chunked transfer)
curl -H "Accept-Encoding: gzip" -I https://gzip.samplefiledownload.com/files/sample.txt 2>/dev/null | grep -E "Content-Length|Transfer-Encoding"
Transfer-Encoding: chunked

# Force unknown size
curl -I https://chunked.samplefiledownload.com/files/large-file.bin 2>/dev/null | grep -E "Content-Length|Transfer-Encoding"
Transfer-Encoding: chunked

# Compare download progress behavior
curl -# -o /dev/null https://download.samplefiledownload.com/files/large-file.bin
######################################## 100.0%

curl -# -o /dev/null https://chunked.samplefiledownload.com/files/large-file.bin
###                                        (no percentage shown)

Summary

CategoryCountContent-Length
Size Known (progress bar works)54✅ Sent
Size Unknown (chunked transfer)7❌ Not sent
Recommended for large file downloads:
Use download or nocomp subdomains to ensure download managers can show accurate progress percentage.

Complete Subdomain Reference

All 60 subdomains with their purpose and key features

#SubdomainPurposeKey Header/Feature
1staticHTTP only static servingNo HTTPS redirect
2secureHTTPS with HSTSStrict-Transport-Security
3streamStreaming with sendfileX-Accel-Buffering: no
4downloadForce download + Content-LengthNo compression, progress bar works
5cdnCDN-style with CORSAccess-Control-Allow-Origin: *
6viewInline viewingContent-Disposition: inline
7legacyHTTP/1.0 onlyConnection: close
8h1HTTP/1.1 onlykeepalive enabled
9h2HTTP/2ALPN h2
10h2cHTTP/2 cleartextNo TLS, HTTP/2 upgrade
11h3HTTP/3 with fallbackAlt-Svc: h3
12quicQUIC onlyHTTP/3 required
13autoAuto-negotiateAll protocols enabled
14gzipGzip level 6Content-Encoding: gzip
15gzip-maxGzip level 9Maximum compression
16gzip-fastGzip level 1Fastest compression
17brotliBrotli level 6Content-Encoding: br
18brotli-maxBrotli level 11Maximum compression
19dual-compBoth Gzip and BrotliClient preference
20nocompNo compression + Content-LengthProgress bar works, raw transfer
20bchunkedChunked transfer (no size)Transfer-Encoding: chunked
21precompPre-compressed filesgzip_static, brotli_static
22tls12TLS 1.2 onlyssl_protocols TLSv1.2
23tls13TLS 1.3 onlyssl_protocols TLSv1.3
24tls13-0rttTLS 1.3 with 0-RTTssl_early_data on
25mtlsMutual TLS requiredssl_verify_client on
26mtls-optionalMutual TLS optionalssl_verify_client optional
27strong-cipher256-bit ciphers onlyAES-256-GCM only
28ocspOCSP staplingssl_stapling on
29nocacheNo cachingCache-Control: no-store
30private-cacheBrowser cache onlyCache-Control: private
31public-cacheCDN cacheableCache-Control: public
32swrStale-while-revalidatestale-while-revalidate=3600
33immutableImmutable assetsimmutable, max-age=31536000
34etagETag validationETag header
35lastmodLast-ModifiedLast-Modified header
36basic-authHTTP Basic AuthWWW-Authenticate: Basic
37jwt-authJWT authenticationAuthorization: Bearer
38apikey-authAPI Key headerX-API-Key validation
39ip-authIP whitelistallow/deny directives
40rate-ipPer-IP rate limit10 req/s, burst 20
41rate-strictStrict rate limit1 req/s, burst 5
42rate-burstHigh burst allowed100 req/s, burst 500
43conn-limitConnection limit10 connections/IP
44bw-limitBandwidth limit1MB/s after 10MB
45keepalive-longLong keepalivetimeout=300, max=1000
46keepalive-shortShort keepalivetimeout=5, max=10
47no-keepaliveNo keepaliveConnection: close
48timeout-longLong timeouts300s timeouts
49timeout-shortShort timeouts5s timeouts
50buffer-largeLarge buffers10MB buffers
51buffer-smallSmall buffers1KB buffers
52secure-linkSecure linksMD5 hash + expiration
53canaryA/B testing10% canary, 90% stable
54mirrorTraffic mirroringmirror directive
55reqidRequest IDX-Request-ID header
56healthHealth checks/health, /health/json
57deviceDevice detectionX-Device-Type header
58autoindexDirectory listingDirectoryLister UI
59ssiServer-side includesssi on
60webdavWebDAV serverPROPFIND, MKCOL, etc.