47 votes

Pourquoi "Expire" 1981 ?

Ma tâche CRON a renvoyé une erreur indiquant que la tâche CRON n'a pas fonctionné. En cela c'était là :

 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

Je me demande pourquoi Expires défini sur "1981". Quelle est la signification ?

101voto

Mark Byers Points 318575

C'est une tentative de désactiver la mise en cache.

La date est celle de l'anniversaire du développeur Sascha Schumann qui a ajouté le code.

À partir de 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);
}

8voto

Marek Sebera Points 15987

En-tête HTTP Expire

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

Il est défini sur une valeur négative ou passée, pour empêcher la mise en cache de la réponse.

Utilisation assez courante de cet en-tête.

7voto

Ashwini Dhekane Points 1711

Je pense que vous utilisez session_cache_limiter avant d'appeler session_start . Si l'argument est private ou no-cache le résultat définit l'en- Expires à l'heure que vous avez mentionnée. Reportez-vous à ce document pour plus d'informations.

0voto

deceze Points 200115

Quelqu'un vient de mettre expires = date('-30 years') (paraphrasé) dans son code pour s'assurer vraiment que le contenu est défini comme expiré et non mis en cache.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X