]> git.ipfire.org Git - thirdparty/apache/httpd.git/blob
1911069
[thirdparty/apache/httpd.git] /
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
5 <!--
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9 -->
10 <title>mod_session - Serveur HTTP Apache Version 2.4</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body>
19 <div id="page-header">
20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
21 <p class="apache">Serveur HTTP Apache Version 2.4</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
24 <div id="path">
25 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_session</h1>
28 <div class="toplang">
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
30 <a href="../fr/mod/mod_session.html" title="Français">&nbsp;fr&nbsp;</a></p>
31 </div>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support des sessions</td></tr>
33 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
34 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>session_module</td></tr>
35 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_session.c</td></tr>
36 <tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3 d'Apache</td></tr></table>
37 <h3>Sommaire</h3>
38
39 <div class="warning"><h3>Avertissement</h3>
40 <p>Le module session fait usage des cookies HTTP, et peut à ce
41 titre être victime d'attaques de type Cross Site Scripting, ou
42 divulguer des informations à caractère privé aux clients. Veuillez
43 vous assurer que les risques ainsi encourus ont été pris en compte
44 avant d'activer le support des sessions sur votre serveur.</p>
45 </div>
46
47 <p>Ce module fournit le support d'une interface de session pour
48 chaque utilisateur au niveau du serveur global. Les sessions
49 permettent de transmettre diverses informations : l'utilisateur
50 est-il connecté ou non, ou toute autre information qui doit être
51 conservée d'une requête à l'autre.</p>
52
53 <p>Les sessions peuvent être stockées sur le serveur, ou au niveau
54 du navigateur. Les sessions peuvent également être chiffrées pour une
55 sécurité accrue. Ces fonctionnalités sont réparties entre différents
56 modules complémentaires de <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> :
57 <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>,
58 <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> et
59 <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>. Chargez les modules appropriés
60 en fonction des besoins du serveur (soit statiquement à la
61 compilation, soit dynamiquement via la directive <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>).</p>
62
63 <p>Les sessions peuvent être manipulées par d'autres modules qui
64 dépendent de la session, ou la session peut être lue et écrite dans
65 des variables d'environnement et des en-têtes HTTP, selon les
66 besoins.</p>
67
68 </div>
69 <div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
70 <ul id="topics">
71 <li><img alt="" src="../images/down.gif" /> <a href="#whatisasession">Qu'est-ce qu'une session ?</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#whocanuseasession">Qui peut utiliser une session
73 ?</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#serversession">Stockage des sessions sur le
75 serveur</a></li>
76 <li><img alt="" src="../images/down.gif" /> <a href="#browsersession">Stockage des sessions au niveau
77 du navigateur</a></li>
78 <li><img alt="" src="../images/down.gif" /> <a href="#basicexamples">Exemples simples</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#sessionprivacy">Confidentialité des
80 sessions</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#cookieprivacy">Confidentialité du cookie</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#authentication">Support des sessions pour
83 l'authentification</a></li>
84 <li><img alt="" src="../images/down.gif" /> <a href="#integration">Intégration des sessions avec les
85 applications externes</a></li>
86 </ul><h3 class="directives">Directives</h3>
87 <ul id="toc">
88 <li><img alt="" src="../images/down.gif" /> <a href="#session">Session</a></li>
89 <li><img alt="" src="../images/down.gif" /> <a href="#sessionenv">SessionEnv</a></li>
90 <li><img alt="" src="../images/down.gif" /> <a href="#sessionexclude">SessionExclude</a></li>
91 <li><img alt="" src="../images/down.gif" /> <a href="#sessionexpiryupdateinterval">SessionExpiryUpdateInterval</a></li>
92 <li><img alt="" src="../images/down.gif" /> <a href="#sessionheader">SessionHeader</a></li>
93 <li><img alt="" src="../images/down.gif" /> <a href="#sessioninclude">SessionInclude</a></li>
94 <li><img alt="" src="../images/down.gif" /> <a href="#sessionmaxage">SessionMaxAge</a></li>
95 </ul>
96 <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è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>
97 <ul class="seealso">
98 <li><code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code></li>
99 <li><code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code></li>
100 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
101 <li><a href="#comments_section">Commentaires</a></li></ul></div>
102 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
103 <div class="section">
104 <h2><a name="whatisasession" id="whatisasession">Qu'est-ce qu'une session ?</a></h2>
105 <p>Au coeur de l'interface de session se trouve une table de
106 paires clé/valeur qui sont accessibles d'une requête du navigateur
107 à l'autre. Les valeurs de clés peuvent se voir affecter toute chaîne
108 de caractères valide, en fonction des besoins de l'application qui
109 fait usage de la session.</p>
110
111 <p>Une "session" est une chaîne
112 <strong>application/x-www-form-urlencoded</strong> qui contient la
113 paire clé/valeur définie par la <a href="http://www.w3.org/TR/html4/">spécification HTML</a>.</p>
114
115 <p>Selon les souhaits de l'administrateur, la session peut être
116 chiffrée et codée en base64 avant d'être soumise au dispositif de
117 stockage.</p>
118
119 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
120 <div class="section">
121 <h2><a name="whocanuseasession" id="whocanuseasession">Qui peut utiliser une session
122 ?</a></h2>
123 <p>L'interface de session a été conçue à l'origine pour être
124 utilisée par d'autres modules du serveur comme
125 <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> ; les applications à base de
126 programmes CGI peuvent cependant se voir accorder l'accès au
127 contenu d'une session via la variable d'environnement
128 HTTP_SESSION. Il est possible de modifier et/ou de mettre à jour
129 une session en insérant un en-tête de réponse HTTP contenant les
130 nouveaux paramètres de session.</p>
131
132 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
133 <div class="section">
134 <h2><a name="serversession" id="serversession">Stockage des sessions sur le
135 serveur</a></h2>
136 <p>Apache peut être configuré pour stocker les sessions
137 utilisateurs sur un serveur particulier ou un groupe de serveurs.
138 Cette fonctionnalité est similaire aux sessions disponibles sur
139 les serveurs d'applications courants.</p>
140
141 <p>Selon la configuration, les sessions sont suivies à
142 partir d'un identifiant de session stocké dans un cookie, ou
143 extraites de la chaîne de paramètres de l'URL, comme dans les
144 requêtes GET courantes.</p>
145
146 <p>Comme le contenu de la session est stocké exclusivement sur le
147 serveur, il est nécessaire de préserver la confidentialité de ce
148 contenu. Ceci a des implications en matière de performance et de
149 consommation de ressources lorsqu'un grand nombre de sessions est
150 stocké, ou lorsqu'un grand nombre de serveurs doivent se partager
151 les sessions entre eux.</p>
152
153 <p>Le module <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> permet de stocker
154 les sessions utilisateurs dans une base de données SQL via le
155 module <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>.</p>
156
157 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
158 <div class="section">
159 <h2><a name="browsersession" id="browsersession">Stockage des sessions au niveau
160 du navigateur</a></h2>
161 <p>Dans les environnements à haut trafic où le stockage d'une
162 session sur un serveur consomme trop
163 de ressources, il est possible de stocker le contenu de la session
164 dans un cookie au niveau du navigateur client.</p>
165
166 <p>Ceci a pour avantage de ne nécessiter qu'une quantité minimale de
167 ressources sur le serveur pour suivre les sessions, et évite à
168 plusieurs serveurs parmi une forêt de serveurs de devoir partager
169 les informations de session.</p>
170
171 <p>Le contenu de la session est cependant présenté au client, avec
172 pour conséquence un risque de perte de confidentialité. Le module
173 <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> peut être configuré pour
174 chiffrer le contenu de la session avant qu'elle soit stockée au
175 niveau du client.</p>
176
177 <p>Le module <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> permet de stocker
178 les sessions au niveau du navigateur dans un cookie HTTP.</p>
179
180 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
181 <div class="section">
182 <h2><a name="basicexamples" id="basicexamples">Exemples simples</a></h2>
183
184 <p>La création d'une session consiste simplement à ouvrir la
185 session, et à décider de l'endroit où elle doit être stockée. Dans
186 l'exemple suivant, la session sera stockée au niveau du
187 navigateur, dans un cookie nommé <code>session</code>.</p>
188
189 <div class="example"><h3>Session stockée au niveau du navigateur</h3><pre class="prettyprint lang-config">Session On
190 SessionCookieName session path=/</pre>
191 </div>
192
193 <p>Une session est inutile s'il n'est pas possible d'y lire
194 ou d'y écrire. L'exemple suivant montre comment des valeurs
195 peuvent être injectées dans une session à l'aide d'un en-tête de
196 réponse HTTP prédéterminé nommé
197 <code>X-Replace-Session</code>.</p>
198
199 <div class="example"><h3>Ecriture dans une session</h3><pre class="prettyprint lang-config">Session On
200 SessionCookieName session path=/
201 SessionHeader X-Replace-Session</pre>
202 </div>
203
204 <p>L'en-tête doit contenir des paires clé/valeur sous le même
205 format que celui de la chaîne d'argument d'une URL, comme dans
206 l'exemple suivant. Donner pour valeur à une clé la chaîne vide a
207 pour effet de supprimer la clé de la session.</p>
208
209 <div class="example"><h3>Script CGI pour écrire dans une session</h3><pre class="prettyprint lang-sh">#!/bin/bash
210 echo "Content-Type: text/plain"
211 echo "X-Replace-Session: key1=foo&amp;key2=&amp;key3=bar"
212 echo
213 env</pre>
214 </div>
215
216 <p>Selon la configuration, les informations de la session peuvent
217 être extraites de la variable d'environnement HTTP_SESSION. Par
218 défaut la session est privée, et cette fonctionnalité doit donc
219 être explicitement activée via la directive <code class="directive"><a href="#sessionenv">SessionEnv</a></code>.</p>
220
221 <div class="example"><h3>Lecture depuis une session</h3><pre class="prettyprint lang-config">Session On
222 SessionEnv On
223 SessionCookieName session path=/
224 SessionHeader X-Replace-Session</pre>
225 </div>
226
227 <p>Une fois la lecture effectuée, la variable CGI
228 <code>HTTP_SESSION</code> doit contenir la valeur
229 <code>clé1=foo&amp;clé3=bar</code>.</p>
230
231 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
232 <div class="section">
233 <h2><a name="sessionprivacy" id="sessionprivacy">Confidentialité des
234 sessions</a></h2>
235
236 <p>En utilisant la fonctionnalité de votre navigateur "Afficher
237 les cookies", vous pouvez voir une réprésentation de la session
238 sous forme de texte en clair. Ceci peut poser problème si le
239 contenu de la session doit être dissimulé à l'utilisateur final,
240 ou si un tiers accède sans autorisation aux informations de
241 session.</p>
242
243 <p>À ce titre, le contenu de la session peut être chiffré à l'aide
244 du module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> avant d'être stocké
245 au niveau du navigateur.</p>
246
247 <div class="example"><h3>Session chiffrée avant stockage au niveau du
248 navigateur</h3><pre class="prettyprint lang-config">Session On
249 SessionCryptoPassphrase secret
250 SessionCookieName session path=/</pre>
251 </div>
252
253 <p>La session sera automatiquement déchiffrée à la lecture, et
254 rechiffrée par Apache lors de la sauvegarde, si bien que
255 l'application sous-jacente qui utilise la session n'a pas à se
256 préoccuper de savoir si un chiffrement a été mis en oeuvre ou
257 non.</p>
258
259 <p>Les sessions stockées sur le serveur plutôt qu'au niveau du
260 navigateur peuvent aussi être chiffrées, préservant par là-même la
261 confidentialité lorsque des informations sensibles sont partagées
262 entre les serveurs web d'une forêt de serveurs à l'aide du module
263 <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>.</p>
264
265 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
266 <div class="section">
267 <h2><a name="cookieprivacy" id="cookieprivacy">Confidentialité du cookie</a></h2>
268
269 <p>Le mécanisme de cookie HTTP offre aussi des fonctionnalités
270 quant à la confidentialité, comme la possibilité de
271 restreindre le transport du cookie aux pages protégées par SSL
272 seulement, ou l'interdiction pour les scripts java qui
273 s'exécutent au niveau du navigateur d'obtenir l'accès au contenu
274 du cookie.</p>
275
276 <div class="warning"><h3>Avertissement</h3>
277 <p>Certaines fonctionnalités de confidentialité du cookie HTTP ne
278 sont pas standardisées, ou ne sont pas toujours implémentées au
279 niveau du navigateur. Les modules de session vous permettent de
280 définir les paramètres du cookie, mais il n'est pas garanti que la
281 confidentialité sera respectée par le navigateur. Si la sécurité
282 est la principale préoccupation, chiffrez le contenu de la session
283 avec le module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>, ou stockez la
284 session sur le serveur avec le module
285 <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>.</p>
286 </div>
287
288 <p>Les paramètres standards du cookie peuvent être spécifiés après
289 le nom du cookie comme dans l'exemple suivant :</p>
290
291 <div class="example"><h3>Définition des paramètres du cookie</h3><pre class="prettyprint lang-config">Session On
292 SessionCryptoPassphrase secret
293 SessionCookieName session path=/private;domain=example.com;httponly;secure;</pre>
294 </div>
295
296 <p>Dans les cas où le serveur Apache sert de frontal pour des
297 serveurs d'arrière-plan, il est possible de supprimer les cookies
298 de session des en-têtes HTTP entrants à l'aide de la directive
299 <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookieremove">SessionCookieRemove</a></code>. Ceci
300 permet d'empêcher les serveurs d'arrière-plan d'accéder au contenu
301 des cookies de session.
302 </p>
303
304 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
305 <div class="section">
306 <h2><a name="authentication" id="authentication">Support des sessions pour
307 l'authentification</a></h2>
308
309 <p>Comme il est possible de le faire avec de nombreux serveurs
310 d'applications, les modules d'authentification peuvent utiliser
311 une session pour stocker le nom d'utilisateur et le mot de passe
312 après connexion. Le module <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> par
313 exemple, sauvegarde les nom de connexion et mot de passe de
314 l'utilisateur dans une session.</p>
315
316 <div class="example"><h3>Authentification à base de formulaire</h3><pre class="prettyprint lang-config">Session On
317 SessionCryptoPassphrase secret
318 SessionCookieName session path=/
319 AuthFormProvider file
320 AuthUserFile "conf/passwd"
321 AuthType form
322 AuthName "realm"
323 #...</pre>
324 </div>
325
326 <p>Pour la documentation et des exemples complets, voir le module
327 <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
328
329 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
330 <div class="section">
331 <h2><a name="integration" id="integration">Intégration des sessions avec les
332 applications externes</a></h2>
333
334 <p>Pour que les sessions soient utiles, leur contenu doit être
335 accessible aux applications externes, et ces dernières doivent
336 elles-mêmes être capables d'écrire une session.</p>
337
338 <p>L'exemple type est une application qui modifie le mot de passe
339 d'un utilisateur défini par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>. Cette
340 application doit pouvoir extraire les nom d'utilisateur et mot de
341 passe courants de la session, effectuer les modifications
342 demandées, puis écrire le nouveau mot de passe dans la session,
343 afin que la transition vers le nouveau mot de passe soit
344 transparente.</p>
345
346 <p>Un autre exemple met en jeu une application qui enregistre un
347 nouvel utilisateur pour la première fois. Une fois
348 l'enregistrement terminé, le nom d'utilisateur et le mot de passe
349 sont écrits dans la session, fournissant là aussi une transition
350 transparente.</p>
351
352 <dl>
353 <dt>Modules Apache</dt>
354 <dd>Selon les besoins, les modules du serveur peuvent utiliser
355 l'API <strong>mod_session.h</strong> pour lire et écrire dans les
356 sessions. Les modules tels que <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
357 utilisent ce mécanisme.
358 </dd>
359
360 <dt>Programmes CGI et langages de script</dt>
361 <dd>Les applications qui s'exécutent au sein du serveur web
362 peuvent éventuellement extraire la valeur de la session de la
363 variable d'environnement <strong>HTTP_SESSION</strong>. La session
364 doit être codée sous la forme d'une chaîne
365 <strong>application/x-www-form-urlencoded</strong> selon les
366 préconisations de la <a href="http://www.w3.org/TR/html4/">specification HTML</a>. Cette
367 variable d'environnement est définie via la directive <code class="directive"><a href="#sessionenv">SessionEnv</a></code>. Un script peut écrire
368 dans la session en renvoyant un en-tête de réponse
369 <strong>application/x-www-form-urlencoded</strong> dont le nom est
370 défini via la directive <code class="directive"><a href="#sessionheader">SessionHeader</a></code>. Dans les deux cas,
371 tout chiffrement ou déchiffrement, ainsi que la lecture ou
372 l'écriture de ou vers la session à partir du mécanisme de stockage
373 choisi sont gérés par le module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> et la
374 configuration correspondante.
375 </dd>
376
377 <dt>Applications situées derrière <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dt>
378 <dd>Si la directive <code class="directive"><a href="#sessionheader">SessionHeader</a></code> est utilisée pour
379 définir un en-tête de requête HTTP, la session codée sous la forme
380 d'une chaîne <strong>application/x-www-form-urlencoded</strong>
381 sera accessible pour l'application. Si ce même en-tête est fourni
382 dans la réponse, sa valeur sera utilisée pour remplacer la
383 session. Comme précédemment, tout chiffrement ou déchiffrement,
384 ainsi que la lecture ou
385 l'écriture de ou vers la session à partir du mécanisme de stockage
386 choisi sont gérés par le module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> et la
387 configuration correspondante.</dd>
388
389 <dt>Applications indépendantes</dt>
390 <dd>Les applications peuvent choisir de manipuler la session en
391 s'affranchissant du contrôle du serveur HTTP Apache. Dans ce cas,
392 c'est l'application qui doit prendre en charge la lecture de la
393 session depuis le mécanisme de stockage choisi, son déchiffrement,
394 sa mise à jour, son chiffrement et sa réécriture vers le mécanisme
395 de stockage choisi de manière appropriée.</dd>
396 </dl>
397
398 </div>
399 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
400 <div class="directive-section"><h2><a name="session" id="session">Directive</a> <a name="Session" id="Session">Session</a></h2>
401 <table class="directive">
402 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ouvre une session pour le contexte courant</td></tr>
403 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Session On|Off</code></td></tr>
404 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Session Off</code></td></tr>
405 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
406 <tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
407 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
408 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
409 </table>
410 <p>La directive <code class="directive">Session</code> permet d'ouvrir une
411 session pour le contexte ou conteneur courant. Les directives
412 suivantes permettent de définir où la session sera stockée et
413 comment sera assurée la confidentialité.</p>
414
415 </div>
416 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
417 <div class="directive-section"><h2><a name="sessionenv" id="sessionenv">Directive</a> <a name="SessionEnv" id="SessionEnv">SessionEnv</a></h2>
418 <table class="directive">
419 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si le contenu de la session doit être enregistré
420 dans la variable d'environnement <var>HTTP_SESSION</var></td></tr>
421 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionEnv On|Off</code></td></tr>
422 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionEnv Off</code></td></tr>
423 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
424 <tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
425 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
426 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
427 </table>
428 <p>Lorsque la directive <code class="directive">SessionEnv</code> est
429 définie à <var>On</var>, le contenu de la session est enregistré
430 dans une variable d'environnement CGI nommée
431 <var>HTTP_SESSION</var>.</p>
432
433 <p>La chaîne est écrite sous le même format que celui de la chaîne
434 d'arguments d'une URL, comme dans l'exemple suivant :</p>
435
436 <div class="example"><p><code>
437 <code>clé1=foo&amp;clé3=bar</code>
438 </code></p></div>
439
440
441 </div>
442 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
443 <div class="directive-section"><h2><a name="sessionexclude" id="sessionexclude">Directive</a> <a name="SessionExclude" id="SessionExclude">SessionExclude</a></h2>
444 <table class="directive">
445 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URLs pour lesquels une session sera
446 ignorée</td></tr>
447 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExclude <var>chemin</var></code></td></tr>
448 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
449 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
450 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
451 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
452 </table>
453 <p>La directive <code class="directive">SessionExclude</code> permet de
454 définir les préfixes d'URLs pour lesquels la session sera
455 désactivée. Ceci peut améliorer l'efficacité d'un site web, en
456 ciblant de manière plus précise l'espace d'URL pour lequel une
457 session devra être maintenue. Par défaut, toutes les URLs du
458 contexte ou du conteneur courant sont incluses dans la session. La
459 directive <code class="directive"><a href="#sessionexclude">SessionExclude</a></code>
460 l'emporte sur la directive <code class="directive"><a href="#sessioninclude">SessionInclude</a></code>.</p>
461
462 <div class="warning"><h3>Avertissement</h3>
463 <p>Cette directive a un comportement similaire à celui de l'attribut
464 <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
465 avec cet attribut. En effet, cette directive ne définit pas
466 l'attribut <var>chemin</var>, qui doit être configuré
467 séparément.</p></div>
468
469 </div>
470 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
471 <div class="directive-section"><h2><a name="sessionexpiryupdateinterval" id="sessionexpiryupdateinterval">Directive</a> <a name="SessionExpiryUpdateInterval" id="SessionExpiryUpdateInterval">SessionExpiryUpdateInterval</a></h2>
472 <table class="directive">
473 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nombre de secondes dont la durée d'expiration d'une
474 session peut changer sans que cette session soit mise à jour</td></tr>
475 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExpiryUpdateInterval <var>interval</var></code></td></tr>
476 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionExpiryUpdateInterval 0 (mise à jour systématique)</code></td></tr>
477 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
478 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
479 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
480 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.41 du serveur HTTP Apache</td></tr>
481 </table>
482 <p>La directive <code class="directive">SessionExpiryUpdateInterval</code>
483 permet d'éviter le coût de l'écriture d'une session pour chaque
484 requête en n'effectuant cette mise à jour que lorsque la date
485 d'expiration a changé. Ceci permet d'améliorer les performances d'un
486 site web ou de réduire la charge d'une base de données lorsqu'on
487 utilise <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>. La session est
488 systématiquement mise à jour si les données stockées dans la session
489 ont été modifiées ou si la durée d'expiration a été modifiée d'une
490 durée supérieure à l'intervalle spécifié.</p>
491
492 <p>Définir l'intervalle à 0 désactive cette directive, et
493 l'expiration de la session sera alors rafraîchie pour chaque requête.</p>
494
495 <p>Cette directive n'a d'effet que si on l'utilise en combinaison
496 avec la directive <code class="directive"><a href="#sessionmaxage">SessionMaxAge</a></code> qui active
497 l'expiration des sessions. Les sessions sans date d'expiration ne
498 sont écrites que lorsque les données qu'elles renferment ont été
499 modifiées.</p>
500
501 <div class="warning"><h3>Avertissement</h3>
502 <p>Comme l'expiration de la session n'est pas systématiquement
503 rafraîchie à chaque requête, une session peut arriver à expiration
504 plus tôt d'un nombre de secondes spécifié dans le paramètre
505 <var>interval</var>. Définir un petit intervalle est en général
506 assez sur, mais en revenche n'a qu'un effet minime sur la prise en
507 compte des durées d'expiration.</p></div>
508
509 </div>
510 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
511 <div class="directive-section"><h2><a name="sessionheader" id="sessionheader">Directive</a> <a name="SessionHeader" id="SessionHeader">SessionHeader</a></h2>
512 <table class="directive">
513 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Importation des mises à jour de session depuis l'en-tête de
514 réponse HTTP spécifié</td></tr>
515 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionHeader <var>en-tête</var></code></td></tr>
516 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
517 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
518 <tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
519 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
520 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
521 </table>
522 <p>La directive <code class="directive">SessionHeader</code> permet de
523 définir le nom d'un en-tête de réponse HTTP qui, s'il est présent,
524 sera lu et son contenu écrit dans la session courante.</p>
525
526 <p>Le contenu de l'en-tête doit se présenter sous le même format que
527 celui de la chaîne d'arguments d'une URL, comme dans l'exemple
528 suivant :</p>
529
530 <div class="example"><p><code>
531 <code>clé1=foo&amp;clé2=&amp;clé3=bar</code>
532 </code></p></div>
533
534 <p>Si une clé a pour valeur la chaîne vide, elle sera supprimée de
535 la session.</p>
536
537
538 </div>
539 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
540 <div class="directive-section"><h2><a name="sessioninclude" id="sessioninclude">Directive</a> <a name="SessionInclude" id="SessionInclude">SessionInclude</a></h2>
541 <table class="directive">
542 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URL pour lesquels une session est
543 valide</td></tr>
544 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionInclude <var>chemin</var></code></td></tr>
545 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>toutes URLs</code></td></tr>
546 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
547 <tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
548 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
549 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
550 </table>
551 <p>La directive <code class="directive">SessionInclude</code> permet de
552 définir les préfixes d'URL spécifiques pour lesquels une session
553 sera valide. Ceci peut améliorer l'efficacité d'un site web, en
554 ciblant de manière plus précise l'espace d'URL pour lequel une
555 session devra être maintenue. Par défaut, toutes les URLs du
556 contexte ou du conteneur courant sont incluses dans la session.</p>
557
558 <div class="warning"><h3>Avertissement</h3>
559 <p>Cette directive a un comportement similaire à celui de l'attribut
560 <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
561 avec cet attribut. En effet, cette directive ne définit pas
562 l'attribut <var>chemin</var>, qui doit être configuré séparément.</p></div>
563
564 </div>
565 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
566 <div class="directive-section"><h2><a name="sessionmaxage" id="sessionmaxage">Directive</a> <a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a></h2>
567 <table class="directive">
568 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une durée de vie maximale pour la session en
569 secondes</td></tr>
570 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionMaxAge <var>durée de vie maximale</var></code></td></tr>
571 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionMaxAge 0</code></td></tr>
572 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
573 <tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
574 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
575 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
576 </table>
577 <p>La directive <code class="directive">SessionMaxAge</code> permet de
578 définir la durée maximale pendant laquelle une session restera
579 valide. Lorsqu'une session est sauvegardée, cette durée est
580 réinitialisée et la session peut continuer d'exister. Si la durée
581 d'une session dépasse cette limite sans qu'une requête au serveur ne
582 vienne la rafraîchir, la session va passer hors délai et sera
583 supprimée. Lorsqu'une session est utilisée pour stocker les
584 informations de connexion d'un utilisateur, ceci aura pour effet de
585 le déconnecter automatiquement après le délai spécifié.</p>
586
587 <p>Donner à cette directive la valeur 0 empêche l'expiration de la
588 session.</p>
589
590 </div>
591 </div>
592 <div class="bottomlang">
593 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
594 <a href="../fr/mod/mod_session.html" title="Français">&nbsp;fr&nbsp;</a></p>
595 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
596 <script type="text/javascript"><!--//--><![CDATA[//><!--
597 var comments_shortname = 'httpd';
598 var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_session.html';
599 (function(w, d) {
600 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
601 d.write('<div id="comments_thread"><\/div>');
602 var s = d.createElement('script');
603 s.type = 'text/javascript';
604 s.async = true;
605 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
606 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
607 }
608 else {
609 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
610 }
611 })(window, document);
612 //--><!]]></script></div><div id="footer">
613 <p class="apache">Copyright 2020 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
614 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
615 if (typeof(prettyPrint) !== 'undefined') {
616 prettyPrint();
617 }
618 //--><!]]></script>
619 </body></html>