Почему «Истекает» 1981? - PullRequest
       69

Почему «Истекает» 1981?

38 голосов
/ 19 ноября 2011

Мое задание CRON вернуло ошибку, что задание CRON не сработало. В том, что это было там:

Set-Cookie: PHPSESSID=2t2drultihqci4em15nbfmeb63; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html

Мне интересно, почему для Expires установлено значение "1981". Какое значение?

Ответы [ 4 ]

84 голосов
/ 19 ноября 2011

Это попытка отключить кеширование.

Дата - день рождения разработчика Саша Шуман , который добавил код.

Из session.c:

Authors: Sascha Schumann <sascha@schumann.cx> 
         Andrei Zmievski <andrei@php.net> 

// ...

CACHE_LIMITER_FUNC(private)
{
    ADD_HEADER("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
    CACHE_LIMITER(private_no_expire)(TSRMLS_C);
}
7 голосов
/ 19 ноября 2011

Заголовок HTTP Expires

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

Он установлен в отрицательное или прошлое значение, чтобы предотвратить кэширование ответа.

Довольно распространенное использование этого заголовка.

5 голосов
/ 19 ноября 2011

Я думаю, что вы используете session_cache_limiter перед вызовом session_start. Если аргумент private или no-cache, результатом будет установка заголовка Expires в указанное вами время. См. этот документ для получения дополнительной информации.

2 голосов
/ 19 ноября 2011

Кто-то просто вставил expires = date('-30 years') (перефразированный) в свой код, чтобы действительно убедиться, что контент установлен как просроченный и не кэшированный.

...