]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_session.html.en
rebuild docs with meta element enabled
[apache] / docs / manual / mod / mod_session.html.en
1 <?xml version="1.0" encoding="ISO-8859-1"?>
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="en" xml:lang="en"><head>
4 <meta content="text/html; charset=ISO-8859-1" 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 - Apache HTTP Server Version 2.5</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/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
21 <p class="apache">Apache HTTP Server Version 2.5</p>
22 <img alt="" src="../images/feather.gif" /></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/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Apache Module mod_session</h1>
28 <div class="toplang">
29 <p><span>Available Languages: </span><a href="../en/mod/mod_session.html" title="English">&nbsp;en&nbsp;</a></p>
30 </div>
31 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Session support</td></tr>
32 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
33 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>session_module</td></tr>
34 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_session.c</td></tr>
35 <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3 and later</td></tr></table>
36 <h3>Summary</h3>
37
38     <div class="warning"><h3>Warning</h3>
39       <p>The session modules make use of HTTP cookies, and as such can fall
40       victim to Cross Site Scripting attacks, or expose potentially private
41       information to clients. Please ensure that the relevant risks have
42       been taken into account before enabling the session functionality on
43       your server.</p>
44     </div>
45
46     <p>This module provides support for a server wide per user session
47     interface. Sessions can be used for keeping track of whether a user
48     has been logged in, or for other per user information that should
49     be kept available across requests.</p>
50
51     <p>Sessions may be stored on the server, or may be stored on the
52     browser. Sessions may also be optionally encrypted for added security.
53     These features are divided into several modules in addition to
54     <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>,
55     <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> and <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>.
56     Depending on the server requirements, load the appropriate modules
57     into the server (either statically at compile time or dynamically
58     via the <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> directive).</p>
59
60     <p>Sessions may be manipulated from other modules that depend on the
61     session, or the session may be read from and written to using
62     environment variables and HTTP headers, as appropriate.</p>
63
64 </div>
65 <div id="quickview"><h3>Topics</h3>
66 <ul id="topics">
67 <li><img alt="" src="../images/down.gif" /> <a href="#whatisasession">What is a session?</a></li>
68 <li><img alt="" src="../images/down.gif" /> <a href="#whocanuseasession">Who can use a session?</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#serversession">Keeping sessions on the server</a></li>
70 <li><img alt="" src="../images/down.gif" /> <a href="#browsersession">Keeping sessions on the browser</a></li>
71 <li><img alt="" src="../images/down.gif" /> <a href="#basicexamples">Basic Examples</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#sessionprivacy">Session Privacy</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#cookieprivacy">Cookie Privacy</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#authentication">Session Support for Authentication</a></li>
75 <li><img alt="" src="../images/down.gif" /> <a href="#integration">Integrating Sessions with External Applications</a></li>
76 </ul><h3 class="directives">Directives</h3>
77 <ul id="toc">
78 <li><img alt="" src="../images/down.gif" /> <a href="#session">Session</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#sessionenv">SessionEnv</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#sessionexclude">SessionExclude</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#sessionheader">SessionHeader</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#sessioninclude">SessionInclude</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#sessionmaxage">SessionMaxAge</a></li>
84 </ul>
85 <h3>See also</h3>
86 <ul class="seealso">
87 <li><code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code></li>
88 <li><code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code></li>
89 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
90 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
91 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
92 <div class="section">
93 <h2><a name="whatisasession" id="whatisasession">What is a session?</a></h2>
94       <p>At the core of the session interface is a table of key and value pairs
95       that are made accessible across browser requests. These pairs can be set
96       to any valid string, as needed by the application making use of the
97       session.</p>
98
99       <p>The "session" is a <strong>application/x-www-form-urlencoded</strong>
100       string containing these key value pairs, as defined by the
101       <a href="http://www.w3.org/TR/html4/">HTML specification</a>.</p>
102
103       <p>The session can optionally be encrypted and base64 encoded before
104       being written to the storage mechanism, as defined by the
105       administrator.</p>
106
107     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
108 <div class="section">
109 <h2><a name="whocanuseasession" id="whocanuseasession">Who can use a session?</a></h2>
110       <p>The session interface is primarily developed for the use by other
111       server modules, such as <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, however CGI
112       based applications can optionally be granted access to the contents
113       of the session via the HTTP_SESSION environment variable. Sessions
114       have the option to be modified and/or updated by inserting an HTTP
115       response header containing the new session parameters.</p>
116
117     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
118 <div class="section">
119 <h2><a name="serversession" id="serversession">Keeping sessions on the server</a></h2>
120       <p>Apache can be configured to keep track of per user sessions stored
121       on a particular server or group of servers. This functionality is
122       similar to the sessions available in typical application servers.</p>
123
124       <p>If configured, sessions are tracked through the use of a session ID that
125       is stored inside a cookie, or extracted from the parameters embedded
126       within the URL query string, as found in a typical GET request.</p>
127
128       <p>As the contents of the session are stored exclusively on the server,
129       there is an expectation of privacy of the contents of the session. This
130       does have performance and resource implications should a large number
131       of sessions be present, or where a large number of webservers have to
132       share sessions with one another.</p>
133
134       <p>The <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module allows the storage of user
135       sessions within a SQL database via <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>.</p>
136
137     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
138 <div class="section">
139 <h2><a name="browsersession" id="browsersession">Keeping sessions on the browser</a></h2>
140       <p>In high traffic environments where keeping track of a session on a
141       server is too resource intensive or inconvenient, the option exists to store
142       the contents of the session within a cookie on the client browser instead.</p>
143
144       <p>This has the advantage that minimal resources are required on the
145       server to keep track of sessions, and multiple servers within a server
146       farm have no need to share session information.</p>
147
148       <p>The contents of the session however are exposed to the client, with a
149       corresponding risk of a loss of privacy. The
150       <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> module can be configured to encrypt the
151       contents of the session before writing the session to the client.</p>
152
153       <p>The <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code> allows the storage of user
154       sessions on the browser within an HTTP cookie.</p>
155
156     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
157 <div class="section">
158 <h2><a name="basicexamples" id="basicexamples">Basic Examples</a></h2>
159
160       <p>Creating a session is as simple as turning the session on, and deciding
161       where the session will be stored. In this example, the session will be
162       stored on the browser, in a cookie called <code>session</code>.</p>
163
164       <div class="example"><h3>Browser based session</h3><pre class="prettyprint lang-config">Session On
165 SessionCookieName session path=/</pre>
166 </div>
167
168       <p>The session is not useful unless it can be written to or read from. The
169       following example shows how values can be injected into the session through
170       the use of a predetermined HTTP response header called
171       <code>X-Replace-Session</code>.</p>
172
173       <div class="example"><h3>Writing to a session</h3><pre class="prettyprint lang-config">Session On
174 SessionCookieName session path=/
175 SessionHeader X-Replace-Session</pre>
176 </div>
177
178       <p>The header should contain name value pairs expressed in the same format
179       as a query string in a URL, as in the example below. Setting a key to the
180       empty string has the effect of removing that key from the session.</p>
181
182       <div class="example"><h3>CGI to write to a session</h3><pre class="prettyprint lang-sh">#!/bin/bash
183 echo "Content-Type: text/plain"
184 echo "X-Replace-Session: key1=foo&amp;key2=&amp;key3=bar"
185 echo
186 env</pre>
187 </div>
188
189       <p>If configured, the session can be read back from the HTTP_SESSION
190       environment variable. By default, the session is kept private, so this
191       has to be explicitly turned on with the
192       <code class="directive"><a href="#sessionenv">SessionEnv</a></code> directive.</p>
193
194       <div class="example"><h3>Read from a session</h3><pre class="prettyprint lang-config">Session On
195 SessionEnv On
196 SessionCookieName session path=/
197 SessionHeader X-Replace-Session</pre>
198 </div>
199
200       <p>Once read, the CGI variable <code>HTTP_SESSION</code> should contain
201       the value <code>key1=foo&amp;key3=bar</code>.</p>
202
203     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
204 <div class="section">
205 <h2><a name="sessionprivacy" id="sessionprivacy">Session Privacy</a></h2>
206
207       <p>Using the "show cookies" feature of your browser, you would have seen
208       a clear text representation of the session. This could potentially be a
209       problem should the end user need to be kept unaware of the contents of
210       the session, or where a third party could gain unauthorised access to the
211       data within the session.</p>
212
213       <p>The contents of the session can be optionally encrypted before being
214       placed on the browser using the <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>
215       module.</p>
216
217       <div class="example"><h3>Browser based encrypted session</h3><pre class="prettyprint lang-config">Session On
218 SessionCryptoPassphrase secret
219 SessionCookieName session path=/</pre>
220 </div>
221
222       <p>The session will be automatically decrypted on load, and encrypted on
223       save by Apache, the underlying application using the session need have
224       no knowledge that encryption is taking place.</p>
225
226       <p>Sessions stored on the server rather than on the browser can also be
227       encrypted as needed, offering privacy where potentially sensitive
228       information is being shared between webservers in a server farm using
229       the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module.</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="cookieprivacy" id="cookieprivacy">Cookie Privacy</a></h2>
234
235       <p>The HTTP cookie mechanism also offers privacy features, such as the
236       ability to restrict cookie transport to SSL protected pages only, or
237       to prevent browser based javascript from gaining access to the contents
238       of the cookie.</p>
239
240       <div class="warning"><h3>Warning</h3>
241       <p>Some of the HTTP cookie privacy features are either non-standard, or
242       are not implemented consistently across browsers. The session modules
243       allow you to set cookie parameters, but it makes no guarantee that privacy
244       will be respected by the browser. If security is a concern, use the
245       <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> to encrypt the contents of the session,
246       or store the session on the server using the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code>
247       module.</p>
248       </div>
249
250       <p>Standard cookie parameters can be specified after the name of the cookie,
251       as in the example below.</p>
252
253       <div class="example"><h3>Setting cookie parameters</h3><pre class="prettyprint lang-config">Session On
254 SessionCryptoPassphrase secret
255 SessionCookieName session path=/private;domain=example.com;httponly;secure;</pre>
256 </div>
257
258       <p>In cases where the Apache server forms the frontend for backend origin servers,
259       it is possible to have the session cookies removed from the incoming HTTP headers using
260       the <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookieremove">SessionCookieRemove</a></code> directive.
261       This keeps the contents of the session cookies from becoming accessible from the
262       backend server.
263       </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="authentication" id="authentication">Session Support for Authentication</a></h2>
268
269       <p>As is possible within many application servers, authentication modules can use
270       a session for storing the username and password after login. The
271       <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> saves the user's login name and password within
272       the session.</p>
273
274       <div class="example"><h3>Form based authentication</h3><pre class="prettyprint lang-config">Session On
275 SessionCryptoPassphrase secret
276 SessionCookieName session path=/
277 AuthFormProvider file
278 AuthUserFile "conf/passwd"
279 AuthType form
280 AuthName "realm"
281 #...</pre>
282 </div>
283
284       <p>See the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module for documentation and complete
285       examples.</p>
286
287     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
288 <div class="section">
289 <h2><a name="integration" id="integration">Integrating Sessions with External Applications</a></h2>
290
291       <p>In order for sessions to be useful, it must be possible to share the contents
292       of a session with external applications, and it must be possible for an
293       external application to write a session of its own.</p>
294
295       <p> A typical example might be an application that changes a user's password set by
296       <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>. This application would need to read the current
297       username and password from the session, make the required changes to the user's
298       password, and then write the new password to the session in order to provide a
299       seamless transition to the new password.</p>
300
301       <p>A second example might involve an application that registers a new user for
302       the first time. When registration is complete, the username and password is
303       written to the session, providing a seamless transition to being logged in.</p>
304
305       <dl>
306       <dt>Apache modules</dt>
307       <dd>Modules within the server that need access to the session can use the
308       <strong>mod_session.h</strong> API in order to read from and write to the
309       session. This mechanism is used by modules like <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.
310       </dd>
311
312       <dt>CGI programs and scripting languages</dt>
313       <dd>Applications that run within the webserver can optionally retrieve the
314       value of the session from the <strong>HTTP_SESSION</strong> environment
315       variable. The session should be encoded as a
316       <strong>application/x-www-form-urlencoded</strong> string as described by the
317       <a href="http://www.w3.org/TR/html4/">HTML specification</a>. The environment
318       variable is controlled by the setting of the
319       <code class="directive"><a href="#sessionenv">SessionEnv</a></code> directive. The session
320       can be written to by the script by returning a
321       <strong>application/x-www-form-urlencoded</strong> response header with a name
322       set by the <code class="directive"><a href="#sessionheader">SessionHeader</a></code>
323       directive. In both cases, any encryption or decryption, and the reading the
324       session from or writing the session to the chosen storage mechanism is handled
325       by the <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> modules and corresponding configuration.
326       </dd>
327
328       <dt>Applications behind <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dt>
329       <dd>If the <code class="directive"><a href="#sessionheader">SessionHeader</a></code>
330       directive is used to define an HTTP request header, the session, encoded as
331       a <strong>application/x-www-form-urlencoded</strong> string, will be made
332       available to the application. If the same header is provided in the response,
333       the value of this response header will be used to replace the session. As
334       above, any encryption or decryption, and the reading the session from or
335       writing the session to the chosen storage mechanism is handled by the
336       <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> modules and corresponding configuration.</dd>
337
338       <dt>Standalone applications</dt>
339       <dd>Applications might choose to manipulate the session outside the control
340       of the Apache HTTP server. In this case, it is the responsibility of the
341       application to read the session from the chosen storage mechanism,
342       decrypt the session, update the session, encrypt the session and write
343       the session to the chosen storage mechanism, as appropriate.</dd>
344       </dl>
345
346     </div>
347 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
348 <div class="directive-section"><h2><a name="Session" id="Session">Session</a> <a name="session" id="session">Directive</a></h2>
349 <table class="directive">
350 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a session for the current directory or location</td></tr>
351 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Session On|Off</code></td></tr>
352 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Session Off</code></td></tr>
353 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
354 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
355 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
356 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
357 </table>
358     <p>The <code class="directive">Session</code> directive enables a session for the
359     directory or location container. Further directives control where the
360     session will be stored and how privacy is maintained.</p>
361
362 </div>
363 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
364 <div class="directive-section"><h2><a name="SessionEnv" id="SessionEnv">SessionEnv</a> <a name="sessionenv" id="sessionenv">Directive</a></h2>
365 <table class="directive">
366 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control whether the contents of the session are written to the
367 <var>HTTP_SESSION</var> environment variable</td></tr>
368 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionEnv On|Off</code></td></tr>
369 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionEnv Off</code></td></tr>
370 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
371 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
372 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
373 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
374 </table>
375     <p>If set to <var>On</var>, the <code class="directive">SessionEnv</code> directive
376     causes the contents of the session to be written to a CGI environment
377     variable called <var>HTTP_SESSION</var>.</p>
378
379     <p>The string is written in the URL query format, for example:</p>
380
381     <div class="example"><p><code>
382       <code>key1=foo&amp;key3=bar</code>
383     </code></p></div>
384
385
386 </div>
387 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
388 <div class="directive-section"><h2><a name="SessionExclude" id="SessionExclude">SessionExclude</a> <a name="sessionexclude" id="sessionexclude">Directive</a></h2>
389 <table class="directive">
390 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is ignored</td></tr>
391 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionExclude <var>path</var></code></td></tr>
392 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
393 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
394 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
395 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
396 </table>
397     <p>The <code class="directive">SessionExclude</code> directive allows sessions to
398     be disabled relative to URL prefixes only. This can be used to make a
399     website more efficient, by targeting a more precise URL space for which
400     a session should be maintained. By default, all URLs within the directory
401     or location are included in the session. The
402     <code class="directive"><a href="#sessionexclude">SessionExclude</a></code> directive takes
403     precedence over the
404     <code class="directive"><a href="#sessioninclude">SessionInclude</a></code> directive.</p>
405
406     <div class="warning"><h3>Warning</h3>
407     <p>This directive has a similar purpose to the <var>path</var> attribute
408     in HTTP cookies, but should not be confused with this attribute. This
409     directive does not set the <var>path</var> attribute, which must be
410     configured separately.</p></div>
411
412 </div>
413 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
414 <div class="directive-section"><h2><a name="SessionHeader" id="SessionHeader">SessionHeader</a> <a name="sessionheader" id="sessionheader">Directive</a></h2>
415 <table class="directive">
416 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Import session updates from a given HTTP response header</td></tr>
417 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionHeader <var>header</var></code></td></tr>
418 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
419 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
420 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
421 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
422 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
423 </table>
424     <p>The <code class="directive">SessionHeader</code> directive defines the name of an
425     HTTP response header which, if present, will be parsed and written to the
426     current session.</p>
427
428     <p>The header value is expected to be in the URL query format, for example:</p>
429
430     <div class="example"><p><code>
431       <code>key1=foo&amp;key2=&amp;key3=bar</code>
432     </code></p></div>
433
434     <p>Where a key is set to the empty string, that key will be removed from the
435     session.</p>
436
437
438 </div>
439 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
440 <div class="directive-section"><h2><a name="SessionInclude" id="SessionInclude">SessionInclude</a> <a name="sessioninclude" id="sessioninclude">Directive</a></h2>
441 <table class="directive">
442 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is valid</td></tr>
443 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionInclude <var>path</var></code></td></tr>
444 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>all URLs</code></td></tr>
445 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
446 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
447 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
448 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
449 </table>
450     <p>The <code class="directive">SessionInclude</code> directive allows sessions to
451     be made valid for specific URL prefixes only. This can be used to make a
452     website more efficient, by targeting a more precise URL space for which
453     a session should be maintained. By default, all URLs within the directory
454     or location are included in the session.</p>
455
456     <div class="warning"><h3>Warning</h3>
457     <p>This directive has a similar purpose to the <var>path</var> attribute
458     in HTTP cookies, but should not be confused with this attribute. This
459     directive does not set the <var>path</var> attribute, which must be
460     configured separately.</p></div>
461
462 </div>
463 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
464 <div class="directive-section"><h2><a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a> <a name="sessionmaxage" id="sessionmaxage">Directive</a></h2>
465 <table class="directive">
466 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a maximum age in seconds for a session</td></tr>
467 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionMaxAge <var>maxage</var></code></td></tr>
468 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionMaxAge 0</code></td></tr>
469 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
470 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
471 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
472 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
473 </table>
474     <p>The <code class="directive">SessionMaxAge</code> directive defines a time limit
475     for which a session will remain valid. When a session is saved, this time
476     limit is reset and an existing session can be continued. If a session
477     becomes older than this limit without a request to the server to refresh
478     the session, the session will time out and be removed. Where a session is
479     used to stored user login details, this has the effect of logging the user
480     out automatically after the given time.</p>
481
482     <p>Setting the maxage to zero disables session expiry.</p>
483
484 </div>
485 </div>
486 <div class="bottomlang">
487 <p><span>Available Languages: </span><a href="../en/mod/mod_session.html" title="English">&nbsp;en&nbsp;</a></p>
488 </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">Comments</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>
489 <script type="text/javascript"><!--//--><![CDATA[//><!--
490 var comments_shortname = 'httpd';
491 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_session.html';
492 (function(w, d) {
493     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
494         d.write('<div id="comments_thread"><\/div>');
495         var s = d.createElement('script');
496         s.type = 'text/javascript';
497         s.async = true;
498         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
499         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
500     }
501     else {
502         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
503     }
504 })(window, document);
505 //--><!]]></script></div><div id="footer">
506 <p class="apache">Copyright 2015 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
507 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
508 if (typeof(prettyPrint) !== 'undefined') {
509     prettyPrint();
510 }
511 //--><!]]></script>
512 </body></html>