Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Est-ce que quelqu'un pourrair m'expliquer à quoi servent CONCRETEMENT les 4 lignes "header" du début du fichier header.php ?
J'ai bien compris que cela avait un rapport avec le cache (commentaire "Send no-cache headers"), mais je ne comprends pas ce que ça fait réellement...
Je ne vois absolument aucun changement si je les mets en commentaire..
Merci de m'éclairer...
(je sais que c'est probablement un détail peu important, mais j'aime bien comprendre ce que j'intègre à mon site)
Hors ligne
// Send no-cache headers
header('Expires: Thu, 21 Jul 1977 07:30:00 GMT'); // When yours truly first set eyes on this world! :)
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache'); // For HTTP/1.0 compabilityheader('Expires: Thu, 21 Jul 1977 07:30:00 GMT');
Défini une date d'expiration de la page dans le cache du navigateur,
la date est déjà très loin, comme ça, le navigateur ne garde pas de version dans le cache (pour l'anecdote, la date est la date de naissance de Rickard
)
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
Dans le même genre mais surtout destiné aux robots d'indexation,
la date de dernière modif de la page, qui est toujours la plus récente possible.
header('Cache-Control: post-check=0, pre-check=0', false);
Des directive concernant le cache pour les navigateurs, HTTP/1.1
header('Pragma: no-cache');
Directive concernant le cache pour les navigateurs, HTTP/1.0
Vous pouvez vous rendre compte que vos pages ne sont jamais mises en cache même si vous utilisez tous les en-têtes ci-dessus. Il existe toute une collection de paramètres que les utilisateurs peuvent modifier sur leur navigateur pour modifier le comportement par défaut du cache. En envoyant les en-têtes ci-dessus, vous pouvez imposer vos propres valeurs.
Voilà si tu as des questions n'hésite pas.
Hors ligne
Un grand merci pour ces explications techniques très complètes et précises...
La question suivante est : Pourquoi fait-on cela ?
En effet, puisque ces lignes sont dans le fichier header.php, appelé systématiquement par TOUTES les pages, cela signifie (si j'ai bien compris
) que l'on interdit au navigateur de stocker AUCUNE des pages dans son cache.
Or cela me semble bizarre...
Est-ce que l'on ne devrait pas plutôt pas faire une distinction entre les pages réellement dynamiques (qui ne doivent pas être mises en cache) et les pages totalement statiques qui seraient mieux en cache ?
Je pense par exemple à la page d'accueil du site (en supposant qu'elle soit fixe) ou bien la page "Accessibilité" ou bien la page "Aide" ou bien tout autre exemple de page qui ne bouge pas souvent.
Le problème est que la façon dont on intègre PunBB à un site fait que l'on fait passer toutes les pages du site par ce "header.php", et que ces fameux headers HTTP sont envoyés de manière inconditionnelle.
Bon, je dis peut-être une énorme bêtise (ces notions sont un peu nouvelles pour moi...), merci de me corriger dans ce cas...
Hors ligne
tu inclu le header des forums dans toutes les pages de ton site ?
Hors ligne
tu inclus le header des forums dans toutes les pages de ton site ?
Ben oui....
Peut-être aurais-je dû préciser que mon site EST (principalement...) un forum !
Il y aura d'autres fonctions comme par exemple un blog mais je compte bien utiliser les fonctions de PunBB pour faire cela (le blog sera en fait un forum un peu particulier...)
Si j'ai justement choisi PunBB, c'est parce que son code m'a semblé suffisamment clair et léger pour m'en servir comme moteur principal pour tout le site, au prix bien sûr de quelques légères modifications pour obtenir ce que je veux.
Donc oui, le fichier header est à la base de tout (ne serait-ce que pour utiliser la base de données et la partie Identification de PunBB, c'est me semble-t-il la meilleure façon de faire).
C'est aussi (forcément
) la meilleure façon d'avoir une intégration "cohérente" entre la partie purement forum et le reste (même codage CSS).
Je précise que même si je me suis inscrit que récemment (hier), le projet est déjà bien avancé, ça fait un bout de temps que je travaille dessus, mes modifications dans les différents fichiers concernent principalement le code html produit qui a été grandement "simplifié" (et la partie css associée), mais très peu de modifications au niveau du code des fonctions proprement dites (ni de la base de données).
Hors ligne
ok
ceci peut très facilement être switché par exemple en déclarant une constante sur les pages sur lesquelles tu ne veut pas du cache
par exemple
define('PUN_CACHE_THIS', 1);et modifier header.php de cette façon :
if (!defined('PUN_CACHE_THIS'))
{
// Send no-cache headers
header('Expires: Thu, 21 Jul 1977 07:30:00 GMT'); // When yours truly first set eyes on this world! :)
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache'); // For HTTP/1.0 compability
}une autre solution consiste à n'utiliser que common.php sur tes pages et ton propre fichier header.php
Hors ligne
Ouais, j'aime beaucoup la solution de la constante définie pour les pages que l'on veut mettre en cache, qui est à la fois toute simple, élégante et cohérente avec le reste de la programmation...
Vendu. (je vais même garder tel quel le nom de la constante...)
Merci.
Hors ligne
Pages : 1