Перейти к содержимому

HTTP Cache Header Generator

Визуально создавайте заголовки Cache-Control с объяснением директив.

Сгенерированный заголовок

Cache-Control: (none)

Предустановки

Об этом инструменте

Заголовок Cache-Control — фундаментальная часть HTTP-кэширования, которая управляет тем, как браузеры, CDN и прокси-серверы хранят и повторно используют контент. Правильная конфигурация критична для веб-производительности — неправильная настройка может привести к доставке устаревшего контента пользователям или ненужной нагрузке на сервер из-за промахов кэша. Однако синтаксис сложен, и взаимодействие нескольких директив часто путает даже опытных разработчиков.

Этот инструмент предоставляет визуальный конструктор для заголовков Cache-Control, позволяя переключать отдельные директивы и видеть сгенерированный заголовок в реальном времени. Вместо того чтобы запоминать синтаксис вроде `public, max-age=3600, s-maxage=7200, stale-while-revalidate=86400`, вы выбираете опции через интуитивный интерфейс и копируете финальный заголовок прямо в HTTP-ответы. Предустановленные шаблоны для распространённых сценариев — статические активы, API-эндпоинты, HTML-страницы и CDN-кэшированный контент — запускают вашу конфигурацию без угадывания.

Веб-разработчики, инженеры DevOps и бэкенд-специалисты найдут этот инструмент бесценным для отладки проблем кэширования, настройки политик кэширования CDN или изучения взаимодействия разных директив. Сгенерированный заголовок можно скопировать непосредственно в ответы сервера (Express.js, FastAPI, Java, Go и т. д.), устраняя ошибки при ручной переписывании и ускоряя внедрение стратегии кэширования.

Часто задаваемые вопросы

Реализация кода

from flask import Flask, make_response, send_file
import hashlib
import time

app = Flask(__name__)

@app.route('/static/asset')
def serve_immutable_asset():
    """Cache forever — content-hashed file (e.g., bundle.abc123.js)"""
    response = make_response("asset content")
    response.headers['Cache-Control'] = 'public, max-age=31536000, immutable'
    return response

@app.route('/api/data')
def serve_api_data():
    """Short-lived private API response with ETag"""
    data = "dynamic content"
    etag = hashlib.md5(data.encode()).hexdigest()

    response = make_response(data)
    response.headers['Cache-Control'] = 'private, max-age=60'
    response.headers['ETag'] = f'"{etag}"'
    return response

@app.route('/page')
def serve_page():
    """HTML page: always check freshness, cache 10 minutes"""
    response = make_response("<html>...</html>")
    response.headers['Cache-Control'] = 'public, max-age=600, must-revalidate'
    response.headers['Last-Modified'] = 'Mon, 01 Jan 2024 00:00:00 GMT'
    return response

@app.route('/auth')
def serve_auth_page():
    """Never cache sensitive pages"""
    response = make_response("sensitive content")
    response.headers['Cache-Control'] = 'no-store'
    return response

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.