[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Module mod_expires

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.

Résumé

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.

Directives

  • ExpiresActive
  • ExpiresByType
  • ExpiresDefault

  • Directive : ExpiresActive

    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.


    Directive : ExpiresByType

    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.


    Directive : ExpiresDefault

    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.


    Syntaxe alternative pour la définiton des intervalles

    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 :

  • access
  • now (équivalent à 'access')
  • modification
  • 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 :

  • years
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds
  • 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"

    Apache HTTP Server Version 1.3

    Index Home

    Version française © Valery Fremaux / EISTI 1998