Ce module est implémenté dans le fichier mod_expires.c
, et n'est pas compilé par défaut. Il gère la génération des champs d'en-tête Expires:
en fonction de critères propres à l'utilisateur.
Ce module définit la valeur de la date d'expiration inscrite dans les champs d'en-tête HTTP Expires:
transmis dans les réponses du serveur. La date d'expiration peut être calculée relativement à la date de dernière modification du document, ou à la date à laquelle le client accède à la ressource.
Le champ d'en-tête HTTP Expires:
est une instruction donnée au client en rapport avec la validité des informations contenues dans le document. Si ce document est enregistré dans le cache du client, alors il sera reaffiché à partir de cette version cachée plutôt qu'à partir de sa version originale tant que la date d'expiration n'a pas été dépassée. Après cette date, la copie maintenue en cache est considérée comme "expired" et est donc obsolète, et une nouvelle copie de l'original devra être rechargée à partir du serveur d'origine de la ressource.
Syntaxe : ExpiresActive On|Off
Contexte : configuration serveur, hôtes virtuels, répertoire, .htaccess
Surcharge : Indexes
Statut : Extension
Module : mod_expires
Cette directive active ou désactive la génération du champ d'en-tête HTTP Expires
pour le schéma de document courant. (C'est à dire
en fonction de là ou est inscrite cette directive , par exemple dans un fichier .htaccess
auquel cas elle ne s'applique qu'aux documents du répertoire ou se trouve ce fichier). Sur Off
, aucun champ Expires:
ne sera inscrit dans les en-têtes de réponse pour ce schéma (sauf si une surcharge existe à un niveau inférieur, tel que'un fichier .htaccess
surchargeant une directive plus générale dans le fichier de configuration serveur). Sur On
, le champ d'en-tête sera inscrit dansl'en-tête HTTP des documents servis en fonction des critères définis par les directives ExpiresByType et ExpiresDefault (q.v.).
Notez que cette directive ne garantit aucunement qu'un champ Expires:
soit généré. Si les critères définis ne sontpas remplis, aucun champ d'en-tête de ce type n'apparaîtra dans l'en-tête, et l'effet sera identique à celui obtenu si la directive n'avait jamais été utilisée.
Syntaxe : ExpiresByType type-MIME <code>secondes
Contexte : configuration serveur, hôtes virtuels, répertoire, .htaccess
Surcharge : Indexes
Statut : Extension
Module : mod_expires
Cette directive définit la date d'expiration mentionnée dans le champ Expires:
généré pour les documents de type MIME spécifié (ex., text/html
). Le second argument définit le nombre de secondes à ajouter à la référence de temps utilisée comme base du calcul de cette date.
Cette référence est soit la date de dernière modification du fichier, soit la date complète à laquelle à eu lieu l'accès à la ressource par le client. Laquelle de ces deux références sera utilisée dépend de la valeur du champ <code>
;
M vaut pour la date de dernière modification, et A vaut pour la date d'accès à la ressource par le client.
La différence est ici subtile. Si l'option M est uilisée, toutes les copies distribuées des documents, situées dans n'importe quel cache, expireront à la même date, ce quipeut être appréciable pour, mettons, la diffusion d'un bulletin ou d'un programme hebdomadaire systématiquement trouvé à la même URL. Si l'option A est utilisée, la date d'expiration est différente pour tous les clients ; ceci correspond par exemple au cas de fichiers d'images qui ne sont pas remises à jour très souvent, en particulier dans un ensemble documentaire qui se réfèrent aux mêmes images (c'est-à-dire., lorsque ces images peuvent être requises plusieurs fois successivement dans un court intervalle de temps).
Exemple :
ExpiresActive On # enable expirations ExpiresByType image/gif A2592000 # expire GIF images after a month # in the client's cache ExpiresByType text/html M604800 # HTML documents are good for a # week from the time they were # changed, period
Notez que cette directive n'a d'effet que si la directive ExpiresActive
On
a été définie. Elle surcharge, mais seulement pour les documents du type MIME
spécifié, toute date d'expiration ficée par la directive ExpiresDefault.
Vous pourrez aussi utiliser une autre syntaxe pour le calcul du temps d'expiration que nous vous proposons plus en avant dans ce document.
Syntaxe : ExpiresDefault <code>secondes
Contexte : configuration serveur, hôtes virtuels, répertoire, .htaccess
Surcharge : Indexes
Status : Extension
Module : mod_expires
Cette directive précise l'algorithme par défaut servant à calculer la date d'expiration pour tous les documents appartenant au schéma spécifié. Elle peut être surchargée sur une base type par type par une directive ExpiresByType. Voir la description de cette directive pour plus de détails concernant l'argument, ainsi que la syntaxe alternative proposée.
Les directives ExpiresDefault et ExpiresByType peuvent aussi être écrites selon une syntaxe plus lisible sous la forme :
ExpiresDefault "<base> [plus] {<num> <type>}*"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
dans laquelle <base> est l'un parmi :
Le mot-clef 'plus' peut être omis. <num> doit être une valeur entière [acceptable par la fonction atoi() du C], et <type> est l'un parmi :
Par exemple, toutes les directives suivantes peuvent être utilisées pour rendre le document obsolète 1 mois après son dernier accès, par défaut :
ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
Le délai d'expiration peut être précisé plus finement en ajoutant plusieurs clauses '<num> <type>' :
ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"
Version française © Valery Fremaux / EISTI 1998