В веб-разработке кэширование играет решающую роль в повышении производительности за счет хранения часто используемых ресурсов. Однако могут быть случаи, когда вам необходимо отключить кеширование, чтобы гарантировать, что последняя версия вашего контента всегда доставляется пользователям. В этой статье мы рассмотрим различные способы отключения кэширования с использованием кода состояния HTTP 304, а также приведем примеры кода.
Метод 1: установка заголовка Cache-Control
Один из наиболее распространенных способов отключения кеширования — установка заголовка Cache-Control для управления тем, как браузер и промежуточные прокси-серверы кэшируют контент.
Пример на PHP:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
?>
Пример в Node.js (Express.js):
app.use((req, res, next) => {
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
next();
});
Метод 2: использование заголовка Pragma
Заголовок Pragma можно использовать для отключения кэширования в старых версиях HTTP.
Пример в HTML:
<meta http-equiv="Pragma" content="no-cache">
Метод 3: установка заголовка Expires
В заголовке Expires указывается дата и время, после которых контент считается устаревшим и не должен использоваться.
Пример в Apache (.htaccess):
ExpiresActive On
ExpiresDefault "access plus 0 seconds"
Метод 4. Добавление параметра запроса или случайного URL-адреса
Добавляя параметр запроса или случайный URL-адрес к URL-адресу ресурса, вы можете эффективно обойти кеширование.
Пример на JavaScript:
const url = 'https://example.com/resource?' + Date.now();
Пример на Python (Flask):
@app.route('/resource')
def get_resource():
response = make_response(render_template('resource.html'))
response.headers['ETag'] = 'xyz' # Change the ETag value to invalidate the cache
return response
Помните, что кеширование — это мощный инструмент повышения производительности веб-сайта, поэтому используйте эти методы разумно, исходя из ваших конкретных требований.