<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.session.introduction">

    <title>Introduction</title>

    <para>
        The Zend Framework Auth team greatly appreciates your feedback and contributions on our email list:
        <ulink url="mailto:fw-auth@lists.zend.com">fw-auth@lists.zend.com</ulink>
    </para>

    <para>
        With web applications written using <acronym>PHP</acronym>, a <emphasis>session</emphasis> represents a logical,
        one-to-one connection between server-side, persistent state data and a particular user agent client (e.g., web
        browser). <classname>Zend_Session</classname> helps manage and preserve session data, a logical complement of cookie
        data, across multiple page requests by the same client. Unlike cookie data, session data are not stored on the
        client side and are only shared with the client when server-side source code voluntarily makes the data
        available in response to a client request. For the purposes of this component and documentation, the term
        "session data" refers to the server-side data stored in
        <ulink url="http://www.php.net/manual/en/reserved.variables.php#reserved.variables.session"><varname>$_SESSION</varname></ulink>,
        managed by <classname>Zend_Session</classname>, and individually manipulated by <classname>Zend_Session_Namespace</classname>
        accessor objects. <emphasis>Session namespaces</emphasis> provide access to session data using
        classic <ulink url="http://en.wikipedia.org/wiki/Namespace_%28computer_science%29">namespaces</ulink>
        implemented logically as named groups of associative arrays, keyed by strings (similar to normal <acronym>PHP</acronym> arrays).
    </para>

    <para>
        <classname>Zend_Session_Namespace</classname> instances are accessor objects for namespaced slices of
        <varname>$_SESSION</varname>. The <classname>Zend_Session</classname> component wraps the existing <acronym>PHP</acronym> ext/session with an
        administration and management interface, as well as providing an <acronym>API</acronym> for <classname>Zend_Session_Namespace</classname> to
        persist session namespaces. <classname>Zend_Session_Namespace</classname> provides a standardized, object-oriented
        interface for working with namespaces persisted inside <acronym>PHP</acronym>'s standard session mechanism. Support exists for
        both anonymous and authenticated (e.g., "login") session namespaces. <classname>Zend_Auth</classname>, the authentication
        component of Zend Framework, uses <classname>Zend_Session_Namespace</classname> to store some information associated
        with authenticated users. Since <classname>Zend_Session</classname> uses the normal <acronym>PHP</acronym> ext/session functions internally,
        all the familiar configuration options and settings apply (see
        <ulink url="http://www.php.net/session">http://www.php.net/session</ulink>), with such bonuses as the
        convenience of an object-oriented interface and default behavior that provides both best practices and smooth
        integration with Zend Framework. Thus, a standard <acronym>PHP</acronym> session identifier, whether conveyed by cookie or
        within <acronym>URL</acronym>s, maintains the association between a client and session state data.
    </para>

    <para>
        The default
        <ulink url="http://www.php.net/manual/en/function.session-set-save-handler.php">ext/session save
        handler</ulink> does not maintain this association for server clusters under certain conditions because session
        data are stored to the filesystem of the server that responded to the request. If a request may be processed by
        a different server than the one where the session data are located, then the responding server has no access to
        the session data (if they are not available from a networked filesystem). A list of additional, appropriate
        save handlers will be provided, when available. Community members are encouraged to suggest and submit save
        handlers to the <ulink url="mailto:fw-auth@lists.zend.com">fw-auth@lists.zend.com</ulink> list. A <classname>Zend_Db</classname>
        compatible save handler has been posted to the list.
    </para>

</sect1>
