Как кодировать мой HTTP-заголовок ответа на 8 часов в будущем в php / - PullRequest
0 голосов
/ 29 сентября 2010

Я знаю, как установить базовый HTTP-заголовок expires в PHP следующим образом ...

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

Однако я хочу сделать его немного более динамичным, чем я хочу, используя PHP,укажите срок действия на восемь часов раньше, чем пользователь получит доступ к контенту.Может ли кто-нибудь помочь мне достичь этого?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 29 сентября 2010

Вы можете использовать Cache-Control 's max-age вместо того, чтобы указывать число секунд относительно времени ответа:

Время истечения сущности МОЖЕТ быть задано сервером происхождения с помощью заголовка Expires (см. Раздел 14.21). В качестве альтернативы, оно МОЖЕТ быть указано с помощью директивы max-age в ответе. Когда в кэшированном ответе присутствует директива max-age-control-cache, ответ устарел, если его текущий возраст больше значения возраста, заданного (в секундах) во время нового запроса для этого ресурса.

Пример:

header('Cache-Control: max-age=28800');

Обратите внимание, что если оба значения Expires и Cache-Control max-age присутствуют, max-age предпочтительнее, чем 1025 * Истекает *:

Если ответ включает в себя как заголовок Expires, так и директиву max-age, директива max-age переопределяет заголовок Expires, даже если заголовок Expires более ограничительный.

1 голос
/ 29 сентября 2010

Используйте strtotime , чтобы сделать временную метку в будущем, и gmdate , чтобы отформатировать ее как строку в часовом поясе GMT.

define('EXPIRE_FORMAT', 'D, d M Y H:i:s T');
$expires = gmdate(EXPIRE_FORMAT, strtotime('+8 hours'));
header("Expires: $expires");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...