Заголовок отправки сеанса PHP «Cache-Control: no-store, no-cache, must-revalidate». Как перейти на «Cache-Control: s-maxage=10, public, max-age=10»

Сеанс PHP приводит к тому, что каждая страница содержит заголовок cache-control: no-store, no-cache, must-revalidate.

Мне нужно переопределить это поведение и изменить его на Cache-Control: s-maxage=10, public, max-age=10 или даже просто cache-control: public, max-age=10.

Я пытался использовать переменные сеанса session_cache_limiter('public'); и session_cache_expire(1);, но значение срока действия указано в минутах, и я не могу понять, как установить его на 10 секунд.

Как установить session_cache_expire(1); на 10 секунд? Если это невозможно, как еще я могу переопределить заголовок сеанса и установить управление кешем на 10 секунд?

Не уверен, в чем смысл такого чрезвычайно короткого интервала кэширования, но я думаю, вы могли бы просто использовать header после session_start, чтобы перезаписать сгенерированный системой заголовок своим собственным.

CBroe 15.03.2022 16:32

@CBroe, короткое время кеша предназначено для динамического контента. Отсутствие кэша работает хорошо, но я хотел бы увеличить время до 10 секунд, чтобы оно соответствовало времени кэширования некоторых моих функций (которые используют Redis).

turrican_34 15.03.2022 17:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В PHP вы используете функцию header():

<?php
  header("Cache-control: public, max-age=10");
  header("Expires: Sat, 1 Apr 2022 05:00:00 GMT");
?>

Альтернативный вариант — использовать теги HTML сверху — перед первым открытием <?php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
<head>
    <meta http-equiv = "Cache-control" content = "max-age=10" />
    <meta http-equiv = "Expires" content = "Sat, 1 Apr 2022 05:00:00 GMT" />
</head>
<?php

// your php code starts here. 

Если вы используете какой-либо интерфейсный фреймворк, у которого есть свои шаблоны, вы должны искать метатеги там или, возможно, в документации этого фреймворка (возможно, для этого есть специальные функции).

Ответ принят как подходящий

С помощью @ Amikot40 и @CBroe я решил проблему.

// remove pragma no-cache header with session variable
// this also sets the Cache-Control header, but you will change that after session start
session_cache_limiter('public');

session_start();

// cache for 10 seconds
header("Cache-Control: s-maxage=10, public, max-age=10");

// expire in 10 seconds
$expire_time = new DateTime('UTC');
$expire_time->add(new DateInterval('PT10S')); // add 10 seconds
$expire_time = $expire_time->format(DateTimeInterface::RFC7231);
header("Expires: $expire_time");

Другие вопросы по теме