Cours Web : vhost, Php – initiation
Voici le lien vers le cours complet d’initiation à la programmation côté serveur d’un site Internet :
Voici le lien vers le cours complet d’initiation à la programmation côté serveur d’un site Internet :
J’ai expliqué qu’il fallait mettre, avant de faire le tout dernier ordre de sortie echo json_encode($resultat_final);
les headers JSON.
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
On m’a demandé à quoi servaient les entête de cache. J’ai expliqué que ça servait à s’assurer que les interrogations AJAX se feraient toujours (notez le futur), c’est à dire à demander au navigateur de ne rien garder en cache.
Comme toujours, ma mémoire me fait défaut mais mon expérience reste, et je savais qu’il faut éviter tout risque de problème cache.
J’ai retrouvé une explication concrète du problème : certaines versions du navigateur Safari sur iOS6 ne réinterrogent pas les appels AJAX.
Il suffit donc de faire deux choses :
Header set Cache-Control "no-cache"
$.ajaxSetup({
type: 'POST',
headers: { "cache-control": "no-cache" }
});
Toutes les solutions sont prises via le site de questions/réponses de reférence : en Anglais ici.
J’ai mis un peu de temps avant de le comprendre, mais c’est peut être parce que pour certains esprits comme le mien ça n’est pas forcément évident.
En résumé :
FollowSymLinks
:
Options FollowSymLinks
FollowSymLinks
:
Options +FollowSymLinks
FollowSymLinks
:
Options -FollowSymLinks
Explication détaillée :
Lorsqu’on met en place une directive "Directory"
dans le fichier de configuration d’un serveur Web Apache, on peut y ajouter la directive "Options"
.
Par exemple :
<Directory "/web/htdocs/prod"> Options Indexes </Directory>
Ce qu’il faut avoir en tête c’est que le fait de mettre un ordre après Options
efface toutes les directives Options
précédentes et n’applique que les ordres qui suivent.
Par exemple :
<Directory "/web/htdocs/prod"> Options FollowSymLinks </Directory>
Cela signifie que pour le répertoire "/web/htdocs/prod"
il n’y aura que l’option FollowSymLinks
d’activée.
A l’inverse si on avait ajouté un +
, cela signifie « ajouter à toutes les options déjà existantes, FollowSymLinks
.
De même si on avait ajouté un -
, cela signifie « supprimer des options (si elle est présente) » FollowSymLinks
.
Ça n’est pas du tout la même chose et même si, une fois qu’on l’a en tête, c’est très simple, ça peut paraître déroutant au début.