🗄️

HTTP Cache Header Generator — Optimize Browser & CDN Caching

Generate Cache-Control, Vary, and ETag headers for web and API responses. Select a caching strategy (public, private, no-cache, no-store), set browser and CDN TTLs, and configure advanced directives like stale-while-revalidate. Outputs ready-to-use snippets for nginx, Express.js, and Apache.

API ToolsAPI & Backend
Loading tool...

How to Use HTTP Cache Header Generator — Optimize Browser & CDN Caching

How to Use the HTTP Cache Header Generator:

  1. Choose a Preset: Click a preset card to load a pre-configured caching policy. Available presets include HTML pages (short public cache), versioned assets (immutable for 1 year), CDN with fallback (short browser TTL, long CDN TTL), API response (private, must-revalidate), stale-while-revalidate, and no-cache for sensitive data.

  2. Select a Cacheability Scope: Choose the top-level directive that controls who can cache the response. Public allows CDN and proxy servers to cache it. Private restricts caching to the end-user browser only. No Cache allows caching but requires revalidation before each use. No Store prevents any caching entirely.

  3. Set the Browser TTL (max-age): Click a preset duration button (0s, 1m, 5m, 1h, 1d, 7d, 30d, 1yr) or type a custom value in seconds. The human-readable equivalent is displayed alongside the value.

  4. Set a CDN TTL (s-maxage): Tick the CDN / proxy TTL checkbox to add an s-maxage directive that overrides max-age for shared caches such as CDNs. A CDN TTL longer than the browser TTL (e.g. max-age=300, s-maxage=86400) lets CDNs cache aggressively while keeping browser caches short.

  5. Configure Advanced Directives: Enable immutable for fingerprinted static assets that will never change during their TTL. Use must-revalidate to prevent serving expired entries. Enable stale-while-revalidate with a window (in seconds) to serve stale content while refreshing in background. Enable stale-if-error to serve stale content when the origin returns a 5xx error.

  6. Configure the Vary Header: Select which request headers the response varies by. Accept-Encoding is recommended for all compressed responses. Add Authorization when responses are user-specific. Add Origin for CORS-aware CDN caching.

  7. Set ETag Type: Choose Strong (exact match, default), Weak (W/"…" prefix, approximate match), or None to omit ETags entirely. Immutable assets rarely need ETags since they are fingerprinted.

  8. Copy the Output: The Cache-Control and Vary values are shown as coloured pills for quick reading. Click a tab (HTTP Headers, nginx, Express, Apache) to view the corresponding code snippet and click Copy to copy it.

Common Use Cases:

  • Versioned static assets: Use the Versioned assets preset to get Cache-Control: public, max-age=31536000, immutable for fingerprinted JS/CSS/fonts.
  • HTML documents: Use HTML pages preset — short max-age with must-revalidate so browsers always serve fresh HTML.
  • API endpoints: Use the API response preset — private, max-age=0, must-revalidate prevents shared caches and ensures freshness.
  • CDN-fronted APIs: Use CDN with fallback — short browser TTL keeps user data fresh while CDNs cache longer and serve stale during revalidation.
  • Sensitive pages: Use No Cache or No Store for login pages, payment forms, and personal dashboards.

Frequently Asked Questions

Most Viewed Tools

📺

Screen Size Converter — Diagonal Dimension Tool

8,145 views

Calculate screen width and height from diagonal size and aspect ratio. Convert between inches and centimeters for displays, TVs, and monitors with instant dimension calculations.

Use Tool →
🖨️

DPI Calculator — Print Resolution Tool

6,515 views

Calculate DPI (dots per inch), image dimensions, and print sizes. Convert between pixels and physical dimensions for printing and displays.

Use Tool →
⏱️

Seconds to Time Converter — HH:MM:SS Formatter

4,674 views

Convert seconds to HH:MM:SS time format instantly with precise calculations and easy-to-read formatting.

Use Tool →
🔑

Password Entropy Calculator — Crack Time Estimator

4,186 views

Calculate the information-theoretic bit entropy of any password or API key. Detects character set pools automatically, shows the total number of possible combinations, and estimates crack time across five attack scenarios from rate-limited web logins to GPU cracking clusters.

Use Tool →
🔐

TOTP Code Generator — 2FA Testing Tool

4,183 views

Generate time-based one-time passwords from a TOTP secret key. Enter your base32 secret, choose a period and digit length, and get the current and next codes with a live countdown timer. Useful for testing and debugging 2FA integrations.

Use Tool →
{}

JSONL Formatter — Line-by-Line Validator

4,003 views

Format, validate, and inspect JSON Lines (JSONL) and NDJSON files. Validates each line individually, reports parse errors by line number, outputs compact JSONL or a pretty-print preview, and lets you download the cleaned file.

Use Tool →
🔐

TLS Cipher Suite Checker — Strength Analyzer

3,864 views

Check TLS protocol version compatibility and cipher suite strength ratings against current best practices. Supports IANA and OpenSSL cipher names — rates each suite as Strong, Weak, or Deprecated and explains why.

Use Tool →
{ }

JSON to Zod — Schema Generator

3,793 views

Generate Zod validation schema code from a JSON sample object. Infers z.string(), z.number(), z.boolean(), z.array(), z.object(), and z.null() types automatically. Handles nested objects, arrays of objects with optional field detection, and outputs copy-ready TypeScript with import and z.infer type alias.

Use Tool →

Related API & Backend Tools

🔌

API Tester — In-Browser REST Client

Test HTTP API endpoints directly in your browser. Make GET, POST, PUT, PATCH, and DELETE requests with custom headers and request bodies. View status codes, response headers, and pretty-printed JSON responses — all client-side, no server proxy.

Use Tool →
🗄️

API Mock Data Generator — Realistic JSON Builder

Generate structured, realistic mock data for API endpoint testing. Define fields with names and types — UUID, name, email, integer, enum, date, and more — set how many rows you need, and export as a JSON array, NDJSON, or CSV. All generation runs entirely in your browser with no data sent to any server.

Use Tool →
🔄

Postman to OpenAPI Converter — Spec Migration Tool

Convert Postman Collection v2.1 JSON to OpenAPI 3.0 specification format. Upload or paste your collection, and get a downloadable openapi.yaml or openapi.json with mapped paths, parameters, request bodies, and example responses.

Use Tool →
🔐

OAuth Token Validator — JWT & OIDC Decoder

Validate and inspect OAuth tokens in your browser. Decode JWT access tokens and ID tokens to view claims, scopes, and expiry. Analyse opaque tokens for entropy and format. Free and private.

Use Tool →
{}

GraphQL Variables Formatter — Query Validator

Format and validate GraphQL query variables JSON for use in queries and API clients. Paste your variables JSON alongside a GraphQL query to instantly format the JSON, validate that each variable matches its declared type, catch missing required variables, and highlight undeclared extras.

Use Tool →
🔍

API Diff Checker — Response Comparison Tool

Compare two API response payloads and highlight added, removed, and changed fields. Paste any two JSON responses to get an instant field-level diff with color-coded changes and a summary count.

Use Tool →
🐇

AMQP Exchange Configuration Simulator — Map Routing Keys and Queue Bindings

Generate RabbitMQ channel declaration code for Node.js (amqplib) and Python (pika). Select an exchange type, configure durability and options, add queue bindings with routing keys, and instantly get production-ready assertExchange and bindQueue calls. Supports all four exchange types: direct, fanout, topic, and headers. Four presets cover the most common RabbitMQ patterns. Free and runs entirely in your browser.

Use Tool →
◇

GraphQL Query Formatter — Mutation & Subscription Tool

Format and prettify GraphQL queries, mutations, subscriptions, and fragments with correct indentation.

Use Tool →

Share Your Feedback

Help us improve this tool by sharing your experience

We will only use this to follow up on your feedback