<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_session - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_session</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_session.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_session.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support des sessions</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>session_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_session.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible depuis la version 2.3 d'Apache</td></tr></table>
<h3>Sommaire</h3>

    <div class="warning"><h3>Avertissement</h3>
      <p>Le module session fait usage des cookies HTTP, et peut &agrave; ce
      titre &ecirc;tre victime d'attaques de type Cross Site Scripting, ou
      divulguer des informations &agrave; caract&egrave;re priv&eacute; aux clients. Veuillez
      vous assurer que les risques ainsi encourus ont &eacute;t&eacute; pris en compte
      avant d'activer le support des sessions sur votre serveur.</p>
    </div>

    <p>Ce module fournit le support d'une interface de session pour
    chaque utilisateur au niveau du serveur global. Les sessions
    permettent de transmettre diverses informations  : l'utilisateur
    est-il connect&eacute; ou non, ou toute autre information qui doit &ecirc;tre
    conserv&eacute;e d'une requ&ecirc;te &agrave; l'autre.</p>

    <p>Les sessions peuvent &ecirc;tre stock&eacute;es sur le serveur, ou au niveau
    du navigateur. Les sessions peuvent &eacute;galement &ecirc;tre chiffr&eacute;es pour une
    s&eacute;curit&eacute; accrue. Ces fonctionnalit&eacute;s sont r&eacute;parties entre diff&eacute;rents
    modules compl&eacute;mentaires de <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> :
    <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>,
    <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> et
    <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>. Chargez les modules appropri&eacute;s
    en fonction des besoins du serveur (soit statiquement &agrave; la
    compilation, soit dynamiquement via la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>).</p>

    <p>Les sessions peuvent &ecirc;tre manipul&eacute;es par d'autres modules qui
    d&eacute;pendent de la session, ou la session peut &ecirc;tre lue et &eacute;crite dans
    des variables d'environnement et des en-t&ecirc;tes HTTP, selon les
    besoins.</p>

</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#whatisasession">Qu'est-ce qu'une session ?</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#whocanuseasession">Qui peut utiliser une session
    ?</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#serversession">Stockage des sessions sur le
    serveur</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#browsersession">Stockage des sessions au niveau
    du navigateur</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#basicexamples">Exemples simples</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionprivacy">Confidentialit&eacute; des
    sessions</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#cookieprivacy">Confidentialit&eacute; du cookie</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#authentication">Support des sessions pour
    l'authentification</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#integration">Int&eacute;gration des sessions avec les
    applications externes</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#session">Session</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionenv">SessionEnv</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionexclude">SessionExclude</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionexpiryupdateinterval">SessionExpiryUpdateInterval</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionheader">SessionHeader</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessioninclude">SessionInclude</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sessionmaxage">SessionMaxAge</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_session">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_session">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code></li>
<li><code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code></li>
<li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="whatisasession">Qu'est-ce qu'une session ? <a title="Lien permanent" href="#whatisasession" class="permalink">&para;</a></h2>
      <p>Au coeur de l'interface de session se trouve une table de
      paires cl&eacute;/valeur qui sont accessibles d'une requ&ecirc;te du navigateur
      &agrave; l'autre. Les valeurs de cl&eacute;s peuvent se voir affecter toute cha&icirc;ne
      de caract&egrave;res valide, en fonction des besoins de l'application qui
      fait usage de la session.</p>

      <p>Une "session" est une cha&icirc;ne
      <strong>application/x-www-form-urlencoded</strong> qui contient la
      paire cl&eacute;/valeur d&eacute;finie par la <a href="http://www.w3.org/TR/html4/">sp&eacute;cification HTML</a>.</p>

      <p>Selon les souhaits de l'administrateur, la session peut &ecirc;tre
      chiffr&eacute;e et cod&eacute;e en base64 avant d'&ecirc;tre soumise au dispositif de
      stockage.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="whocanuseasession">Qui peut utiliser une session
    ? <a title="Lien permanent" href="#whocanuseasession" class="permalink">&para;</a></h2>
      <p>L'interface de session a &eacute;t&eacute; con&ccedil;ue &agrave; l'origine pour &ecirc;tre
      utilis&eacute;e par d'autres modules du serveur comme
      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> ; les applications &agrave; base de
      programmes CGI peuvent cependant se voir accorder l'acc&egrave;s au
      contenu d'une session via la variable d'environnement
      HTTP_SESSION. Il est possible de modifier et/ou de mettre &agrave; jour
      une session en ins&eacute;rant un en-t&ecirc;te de r&eacute;ponse HTTP contenant les
      nouveaux param&egrave;tres de session.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="serversession">Stockage des sessions sur le
    serveur <a title="Lien permanent" href="#serversession" class="permalink">&para;</a></h2>
      <p>Apache peut &ecirc;tre configur&eacute; pour stocker les sessions
      utilisateurs sur un serveur particulier ou un groupe de serveurs.
      Cette fonctionnalit&eacute; est similaire aux sessions disponibles sur
      les serveurs d'applications courants.</p>

      <p>Selon la configuration, les sessions sont suivies &agrave;
      partir d'un identifiant de session stock&eacute; dans un cookie, ou
      extraites de la cha&icirc;ne de param&egrave;tres de l'URL, comme dans les
      requ&ecirc;tes GET courantes.</p>

      <p>Comme le contenu de la session est stock&eacute; exclusivement sur le
      serveur, il est n&eacute;cessaire de pr&eacute;server la confidentialit&eacute; de ce
      contenu. Ceci a des implications en mati&egrave;re de performance et de
      consommation de ressources lorsqu'un grand nombre de sessions est
      stock&eacute;, ou lorsqu'un grand nombre de serveurs doivent se partager
      les sessions entre eux.</p>

      <p>Le module <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> permet de stocker
      les sessions utilisateurs dans une base de donn&eacute;es SQL via le
      module <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="browsersession">Stockage des sessions au niveau
    du navigateur <a title="Lien permanent" href="#browsersession" class="permalink">&para;</a></h2>
      <p>Dans les environnements &agrave; haut trafic o&ugrave; le stockage d'une
      session sur un serveur consomme trop
      de ressources, il est possible de stocker le contenu de la session
      dans un cookie au niveau du navigateur client.</p>

      <p>Ceci a pour avantage de ne n&eacute;cessiter qu'une quantit&eacute; minimale de
      ressources sur le serveur pour suivre les sessions, et &eacute;vite &agrave;
      plusieurs serveurs parmi une for&ecirc;t de serveurs de devoir partager
      les informations de session.</p>

      <p>Le contenu de la session est cependant pr&eacute;sent&eacute; au client, avec
      pour cons&eacute;quence un risque de perte de confidentialit&eacute;. Le module
      <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> peut &ecirc;tre configur&eacute; pour
      chiffrer le contenu de la session avant qu'elle soit stock&eacute;e au
      niveau du client.</p>

      <p>Le module <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> permet de stocker
      les sessions au niveau du navigateur dans un cookie HTTP.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="basicexamples">Exemples simples <a title="Lien permanent" href="#basicexamples" class="permalink">&para;</a></h2>

      <p>La cr&eacute;ation d'une session consiste simplement &agrave; ouvrir la
      session, et &agrave; d&eacute;cider de l'endroit o&ugrave; elle doit &ecirc;tre stock&eacute;e. Dans
      l'exemple suivant, la session sera stock&eacute;e au niveau du
      navigateur, dans un cookie nomm&eacute; <code>session</code>.</p>

      <div class="example"><h3>Session stock&eacute;e au niveau du navigateur</h3><pre class="prettyprint lang-config">Session On
SessionCookieName session path=/</pre>
</div>

      <p>Une session est inutile s'il n'est pas possible d'y lire
      ou d'y &eacute;crire. L'exemple suivant montre comment des valeurs
      peuvent &ecirc;tre inject&eacute;es dans une session &agrave; l'aide d'un en-t&ecirc;te de
      r&eacute;ponse HTTP pr&eacute;d&eacute;termin&eacute; nomm&eacute;
      <code>X-Replace-Session</code>.</p>

      <div class="example"><h3>Ecriture dans une session</h3><pre class="prettyprint lang-config">Session On
SessionCookieName session path=/
SessionHeader X-Replace-Session</pre>
</div>

      <p>L'en-t&ecirc;te doit contenir des paires cl&eacute;/valeur sous le m&ecirc;me
      format que celui de la cha&icirc;ne d'argument d'une URL, comme dans
      l'exemple suivant. Donner pour valeur &agrave; une cl&eacute; la cha&icirc;ne vide a
      pour effet de supprimer la cl&eacute; de la session.</p>

      <div class="example"><h3>Script CGI pour &eacute;crire dans une session</h3><pre class="prettyprint lang-sh">#!/bin/bash
echo "Content-Type: text/plain"
echo "X-Replace-Session: key1=foo&amp;key2=&amp;key3=bar"
echo
env</pre>
</div>

      <p>Selon la configuration, les informations de la session peuvent
      &ecirc;tre extraites de la variable d'environnement HTTP_SESSION. Par
      d&eacute;faut la session est priv&eacute;e, et cette fonctionnalit&eacute; doit donc
      &ecirc;tre explicitement activ&eacute;e via la directive <code class="directive"><a href="#sessionenv">SessionEnv</a></code>.</p>

      <div class="example"><h3>Lecture depuis une session</h3><pre class="prettyprint lang-config">Session On
SessionEnv On
SessionCookieName session path=/
SessionHeader X-Replace-Session</pre>
</div>

      <p>Une fois la lecture effectu&eacute;e, la variable CGI
      <code>HTTP_SESSION</code> doit contenir la valeur
      <code>cl&eacute;1=foo&amp;cl&eacute;3=bar</code>.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="sessionprivacy">Confidentialit&eacute; des
    sessions <a title="Lien permanent" href="#sessionprivacy" class="permalink">&para;</a></h2>

      <p>En utilisant la fonctionnalit&eacute; de votre navigateur "Afficher
      les cookies", vous pouvez voir une r&eacute;pr&eacute;sentation de la session
      sous forme de texte en clair. Ceci peut poser probl&egrave;me si le
      contenu de la session doit &ecirc;tre dissimul&eacute; &agrave; l'utilisateur final,
      ou si un tiers acc&egrave;de sans autorisation aux informations de
      session.</p>

      <p>&Agrave; ce titre, le contenu de la session peut &ecirc;tre chiffr&eacute; &agrave; l'aide
      du module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> avant d'&ecirc;tre stock&eacute;
      au niveau du navigateur.</p>

      <div class="example"><h3>Session chiffr&eacute;e avant stockage au niveau du
      navigateur</h3><pre class="prettyprint lang-config">Session On
SessionCryptoPassphrase secret
SessionCookieName session path=/</pre>
</div>

      <p>La session sera automatiquement d&eacute;chiffr&eacute;e &agrave; la lecture, et
      rechiffr&eacute;e par Apache lors de la sauvegarde, si bien que
      l'application sous-jacente qui utilise la session n'a pas &agrave; se
      pr&eacute;occuper de savoir si un chiffrement a &eacute;t&eacute; mis en oeuvre ou
      non.</p>

      <p>Les sessions stock&eacute;es sur le serveur plut&ocirc;t qu'au niveau du
      navigateur peuvent aussi &ecirc;tre chiffr&eacute;es, pr&eacute;servant par l&agrave;-m&ecirc;me la
      confidentialit&eacute; lorsque des informations sensibles sont partag&eacute;es
      entre les serveurs web d'une for&ecirc;t de serveurs &agrave; l'aide du module
      <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="cookieprivacy">Confidentialit&eacute; du cookie <a title="Lien permanent" href="#cookieprivacy" class="permalink">&para;</a></h2>

      <p>Le m&eacute;canisme de cookie HTTP offre aussi des fonctionnalit&eacute;s
      quant &agrave; la confidentialit&eacute;, comme la possibilit&eacute; de
      restreindre le transport du cookie aux pages prot&eacute;g&eacute;es par SSL
      seulement, ou l'interdiction pour les scripts java qui
      s'ex&eacute;cutent au niveau du navigateur d'obtenir l'acc&egrave;s au contenu
      du cookie.</p>

      <div class="warning"><h3>Avertissement</h3>
      <p>Certaines fonctionnalit&eacute;s de confidentialit&eacute; du cookie HTTP ne
      sont pas standardis&eacute;es, ou ne sont pas toujours impl&eacute;ment&eacute;es au
      niveau du navigateur. Les modules de session vous permettent de
      d&eacute;finir les param&egrave;tres du cookie, mais il n'est pas garanti que la
      confidentialit&eacute; sera respect&eacute;e par le navigateur. Si la s&eacute;curit&eacute;
      est la principale pr&eacute;occupation, chiffrez le contenu de la session
      avec le module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>, ou stockez la
      session sur le serveur avec le module
      <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>.</p>
      </div>

      <p>Les param&egrave;tres standards du cookie peuvent &ecirc;tre sp&eacute;cifi&eacute;s apr&egrave;s
      le nom du cookie comme dans l'exemple suivant :</p>

      <div class="example"><h3>D&eacute;finition des param&egrave;tres du cookie</h3><pre class="prettyprint lang-config">Session On
SessionCryptoPassphrase secret
SessionCookieName session path=/private;domain=example.com;httponly;secure;</pre>
</div>

      <p>Dans les cas o&ugrave; le serveur Apache sert de frontal pour des
      serveurs d'arri&egrave;re-plan, il est possible de supprimer les cookies
      de session des en-t&ecirc;tes HTTP entrants &agrave; l'aide de la directive
      <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookieremove">SessionCookieRemove</a></code>. Ceci
      permet d'emp&ecirc;cher les serveurs d'arri&egrave;re-plan d'acc&eacute;der au contenu
      des cookies de session.
      </p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="authentication">Support des sessions pour
    l'authentification <a title="Lien permanent" href="#authentication" class="permalink">&para;</a></h2>

      <p>Comme il est possible de le faire avec de nombreux serveurs
      d'applications, les modules d'authentification peuvent utiliser
      une session pour stocker le nom d'utilisateur et le mot de passe
      apr&egrave;s connexion. Le module <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> par
      exemple, sauvegarde les nom de connexion et mot de passe de
      l'utilisateur dans une session.</p>

      <div class="example"><h3>Authentification &agrave; base de formulaire</h3><pre class="prettyprint lang-config">Session On
SessionCryptoPassphrase secret
SessionCookieName session path=/
AuthFormProvider file
AuthUserFile "conf/passwd"
AuthType form
AuthName "realm"
#...</pre>
</div>

      <p>Pour la documentation et des exemples complets, voir le module
      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>

    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="integration">Int&eacute;gration des sessions avec les
    applications externes <a title="Lien permanent" href="#integration" class="permalink">&para;</a></h2>

      <p>Pour que les sessions soient utiles, leur contenu doit &ecirc;tre
      accessible aux applications externes, et ces derni&egrave;res doivent
      elles-m&ecirc;mes &ecirc;tre capables d'&eacute;crire une session.</p>

      <p>L'exemple type est une application qui modifie le mot de passe
      d'un utilisateur d&eacute;fini par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>. Cette
      application doit pouvoir extraire les nom d'utilisateur et mot de
      passe courants de la session, effectuer les modifications
      demand&eacute;es, puis &eacute;crire le nouveau mot de passe dans la session,
      afin que la transition vers le nouveau mot de passe soit
      transparente.</p>

      <p>Un autre exemple met en jeu une application qui enregistre un
      nouvel utilisateur pour la premi&egrave;re fois. Une fois
      l'enregistrement termin&eacute;, le nom d'utilisateur et le mot de passe
      sont &eacute;crits dans la session, fournissant l&agrave; aussi une transition
      transparente.</p>

      <dl>
      <dt>Modules Apache</dt>
      <dd>Selon les besoins, les modules du serveur peuvent utiliser
      l'API <strong>mod_session.h</strong> pour lire et &eacute;crire dans les
      sessions. Les modules tels que <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
      utilisent ce m&eacute;canisme.
      </dd>

      <dt>Programmes CGI et langages de script</dt>
      <dd>Les applications qui s'ex&eacute;cutent au sein du serveur web
      peuvent &eacute;ventuellement extraire la valeur de la session de la
      variable d'environnement <strong>HTTP_SESSION</strong>. La session
      doit &ecirc;tre cod&eacute;e sous la forme d'une cha&icirc;ne
      <strong>application/x-www-form-urlencoded</strong> selon les
      pr&eacute;conisations de la <a href="http://www.w3.org/TR/html4/">specification HTML</a>. Cette
      variable d'environnement est d&eacute;finie via la directive <code class="directive"><a href="#sessionenv">SessionEnv</a></code>. Un script peut &eacute;crire
      dans la session en renvoyant un en-t&ecirc;te de r&eacute;ponse
      <strong>application/x-www-form-urlencoded</strong> dont le nom est
      d&eacute;fini via la directive <code class="directive"><a href="#sessionheader">SessionHeader</a></code>. Dans les deux cas,
      tout chiffrement ou d&eacute;chiffrement, ainsi que la lecture ou
      l'&eacute;criture de ou vers la session &agrave; partir du m&eacute;canisme de stockage
      choisi sont g&eacute;r&eacute;s par le module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> et la
      configuration correspondante.
      </dd>

      <dt>Applications situ&eacute;es derri&egrave;re <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dt>
      <dd>Si la directive <code class="directive"><a href="#sessionheader">SessionHeader</a></code> est utilis&eacute;e pour
      d&eacute;finir un en-t&ecirc;te de requ&ecirc;te HTTP, la session cod&eacute;e sous la forme
      d'une cha&icirc;ne <strong>application/x-www-form-urlencoded</strong>
      sera accessible pour l'application. Si ce m&ecirc;me en-t&ecirc;te est fourni
      dans la r&eacute;ponse, sa valeur sera utilis&eacute;e pour remplacer la
      session. Comme pr&eacute;c&eacute;demment, tout chiffrement ou d&eacute;chiffrement,
      ainsi que la lecture ou
      l'&eacute;criture de ou vers la session &agrave; partir du m&eacute;canisme de stockage
      choisi sont g&eacute;r&eacute;s par le module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> et la
      configuration correspondante.</dd>

      <dt>Applications ind&eacute;pendantes</dt>
      <dd>Les applications peuvent choisir de manipuler la session en
      s'affranchissant du contr&ocirc;le du serveur HTTP Apache. Dans ce cas,
      c'est l'application qui doit prendre en charge la lecture de la
      session depuis le m&eacute;canisme de stockage choisi, son d&eacute;chiffrement,
      sa mise &agrave; jour, son chiffrement et sa r&eacute;&eacute;criture vers le m&eacute;canisme
      de stockage choisi de mani&egrave;re appropri&eacute;e.</dd>
      </dl>

    </div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="session">Directive <span id="Session">Session</span> <a title="Lien permanent" href="#session" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ouvre une session pour le contexte courant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Session On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>Session Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>La directive <code class="directive">Session</code> permet d'ouvrir une
    session pour le contexte ou conteneur courant. Les directives
    suivantes permettent de d&eacute;finir o&ugrave; la session sera stock&eacute;e et
    comment sera assur&eacute;e la confidentialit&eacute;.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessionenv">Directive <span id="SessionEnv">SessionEnv</span> <a title="Lien permanent" href="#sessionenv" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit si le contenu de la session doit &ecirc;tre enregistr&eacute;
dans la variable d'environnement <var>HTTP_SESSION</var></td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionEnv On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SessionEnv Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>Lorsque la directive <code class="directive">SessionEnv</code> est
    d&eacute;finie &agrave; <var>On</var>, le contenu de la session est enregistr&eacute;
    dans une variable d'environnement CGI nomm&eacute;e
    <var>HTTP_SESSION</var>.</p>

    <p>La cha&icirc;ne est &eacute;crite sous le m&ecirc;me format que celui de la cha&icirc;ne
    d'arguments d'une URL, comme dans l'exemple suivant :</p>

    <div class="example"><p><code>
      <code>cl&eacute;1=foo&amp;cl&eacute;3=bar</code>
    </code></p></div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessionexclude">Directive <span id="SessionExclude">SessionExclude</span> <a title="Lien permanent" href="#sessionexclude" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit les pr&eacute;fixes d'URLs pour lesquels une session sera
ignor&eacute;e</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExclude <var>chemin</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>La directive <code class="directive">SessionExclude</code> permet de
    d&eacute;finir les pr&eacute;fixes d'URLs pour lesquels la session sera
    d&eacute;sactiv&eacute;e. Ceci peut am&eacute;liorer l'efficacit&eacute; d'un site web, en
    ciblant de mani&egrave;re plus pr&eacute;cise l'espace d'URL pour lequel une
    session devra &ecirc;tre maintenue. Par d&eacute;faut, toutes les URLs du
    contexte ou du conteneur courant sont incluses dans la session. La
    directive <code class="directive">SessionExclude</code>
    l'emporte sur la directive <code class="directive"><a href="#sessioninclude">SessionInclude</a></code>.</p>

    <div class="warning"><h3>Avertissement</h3>
    <p>Cette directive a un comportement similaire &agrave; celui de l'attribut
    <var>chemin</var> des cookies HTTP, mais ne doit pas &ecirc;tre confondue
    avec cet attribut. En effet, cette directive ne d&eacute;finit pas
    l'attribut <var>chemin</var>, qui doit &ecirc;tre configur&eacute;
    s&eacute;par&eacute;ment.</p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessionexpiryupdateinterval">Directive <span id="SessionExpiryUpdateInterval">SessionExpiryUpdateInterval</span> <a title="Lien permanent" href="#sessionexpiryupdateinterval" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit le nombre de secondes dont la dur&eacute;e d'expiration d'une
session peut changer sans que cette session soit mise &agrave; jour</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExpiryUpdateInterval <var>interval</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SessionExpiryUpdateInterval 0 (mise &agrave; jour syst&eacute;matique)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.41 du serveur HTTP Apache</td></tr>
</table>
    <p>La directive <code class="directive">SessionExpiryUpdateInterval</code>
    permet d'&eacute;viter le co&ucirc;t de l'&eacute;criture d'une session pour chaque
    requ&ecirc;te en n'effectuant cette mise &agrave; jour que lorsque la date
    d'expiration a chang&eacute;. Ceci permet d'am&eacute;liorer les performances d'un
    site web ou de r&eacute;duire la charge d'une base de donn&eacute;es lorsqu'on
    utilise <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>. La session est
    syst&eacute;matiquement mise &agrave; jour si les donn&eacute;es stock&eacute;es dans la session
    ont &eacute;t&eacute; modifi&eacute;es ou si la dur&eacute;e d'expiration a &eacute;t&eacute; modifi&eacute;e d'une
    dur&eacute;e sup&eacute;rieure &agrave; l'intervalle sp&eacute;cifi&eacute;.</p>

    <p>D&eacute;finir l'intervalle &agrave; 0 d&eacute;sactive cette directive, et
    l'expiration de la session sera alors rafra&icirc;chie pour chaque requ&ecirc;te.</p>

    <p>Cette directive n'a d'effet que si on l'utilise en combinaison
    avec la directive <code class="directive"><a href="#sessionmaxage">SessionMaxAge</a></code> qui active
    l'expiration des sessions. Les sessions sans date d'expiration ne
    sont &eacute;crites que lorsque les donn&eacute;es qu'elles renferment ont &eacute;t&eacute;
    modifi&eacute;es.</p>

    <div class="warning"><h3>Avertissement</h3>
    <p>Comme l'expiration de la session n'est pas syst&eacute;matiquement
    rafra&icirc;chie &agrave; chaque requ&ecirc;te, une session peut arriver &agrave; expiration
    plus t&ocirc;t d'un nombre de secondes sp&eacute;cifi&eacute; dans le param&egrave;tre
    <var>interval</var>. D&eacute;finir un petit intervalle est en g&eacute;n&eacute;ral
    assez sur, mais en revenche n'a qu'un effet minime sur la prise en
    compte des dur&eacute;es d'expiration.</p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessionheader">Directive <span id="SessionHeader">SessionHeader</span> <a title="Lien permanent" href="#sessionheader" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Importation des mises &agrave; jour de session depuis l'en-t&ecirc;te de
r&eacute;ponse HTTP sp&eacute;cifi&eacute;</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionHeader <var>en-t&ecirc;te</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>La directive <code class="directive">SessionHeader</code> permet de
    d&eacute;finir le nom d'un en-t&ecirc;te de r&eacute;ponse HTTP qui, s'il est pr&eacute;sent,
    sera lu et son contenu &eacute;crit dans la session courante.</p>

    <p>Le contenu de l'en-t&ecirc;te doit se pr&eacute;senter sous le m&ecirc;me format que
    celui de la cha&icirc;ne d'arguments d'une URL, comme dans l'exemple
    suivant :</p>

    <div class="example"><p><code>
      <code>cl&eacute;1=foo&amp;cl&eacute;2=&amp;cl&eacute;3=bar</code>
    </code></p></div>

    <p>Si une cl&eacute; a pour valeur la cha&icirc;ne vide, elle sera supprim&eacute;e de
    la session.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessioninclude">Directive <span id="SessionInclude">SessionInclude</span> <a title="Lien permanent" href="#sessioninclude" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit les pr&eacute;fixes d'URL pour lesquels une session est
valide</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionInclude <var>chemin</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>toutes URLs</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>La directive <code class="directive">SessionInclude</code> permet de
    d&eacute;finir les pr&eacute;fixes d'URL sp&eacute;cifiques pour lesquels une session
    sera valide. Ceci peut am&eacute;liorer l'efficacit&eacute; d'un site web, en
    ciblant de mani&egrave;re plus pr&eacute;cise l'espace d'URL pour lequel une
    session devra &ecirc;tre maintenue. Par d&eacute;faut, toutes les URLs du
    contexte ou du conteneur courant sont incluses dans la session.</p>

    <div class="warning"><h3>Avertissement</h3>
    <p>Cette directive a un comportement similaire &agrave; celui de l'attribut
    <var>chemin</var> des cookies HTTP, mais ne doit pas &ecirc;tre confondue
    avec cet attribut. En effet, cette directive ne d&eacute;finit pas
    l'attribut <var>chemin</var>, qui doit &ecirc;tre configur&eacute; s&eacute;par&eacute;ment.</p></div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sessionmaxage">Directive <span id="SessionMaxAge">SessionMaxAge</span> <a title="Lien permanent" href="#sessionmaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit une dur&eacute;e de vie maximale pour la session en
secondes</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionMaxAge <var>dur&eacute;e de vie maximale</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>SessionMaxAge 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, r&eacute;pertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autoris&eacute;es:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
</table>
    <p>La directive <code class="directive">SessionMaxAge</code> permet de
    d&eacute;finir la dur&eacute;e maximale pendant laquelle une session restera
    valide. Lorsqu'une session est sauvegard&eacute;e, cette dur&eacute;e est
    r&eacute;initialis&eacute;e et la session peut continuer d'exister. Si la dur&eacute;e
    d'une session d&eacute;passe cette limite sans qu'une requ&ecirc;te au serveur ne
    vienne la rafra&icirc;chir, la session va passer hors d&eacute;lai et sera
    supprim&eacute;e. Lorsqu'une session est utilis&eacute;e pour stocker les
    informations de connexion d'un utilisateur, ceci aura pour effet de
    le d&eacute;connecter automatiquement apr&egrave;s le d&eacute;lai sp&eacute;cifi&eacute;.</p>

    <p>Donner &agrave; cette directive la valeur 0 emp&ecirc;che l'expiration de la
    session.</p>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_session.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_session.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>