<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1584572 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_isapi.xml.meta">

<name>mod_isapi</name>
<description>Extensions ISAPI dans Apache pour Windows</description>
<status>Base</status>
<sourcefile>mod_isapi.c</sourcefile>
<identifier>isapi_module</identifier>
<compatibility>Win32 only</compatibility>

<summary>
    <p>Ce module implémente l'API des extensions du Serveur Internet. Il
    permet à Apache pour Windows de servir les extensions du Serveur
    Internet (par exemple les modules .dll ISAPI), compte tenu des
    restrictions spécifiées.</p>

    <p>Les modules d'extension ISAPI (fichiers .dll) sont des modules
    tiers. Leur auteur n'est pas le Groupe Apache, et nous n'assurons
    donc pas leur support. Veuillez contacter directement l'auteur
    d'ISAPI si vous rencontrez des problèmes à l'exécution d'une
    extension ISAPI. <strong>Merci de <em>ne pas</em> soumettre ce genre
    de problème dans les listes d'Apache ou dans les pages de rapports
    de bogues.</strong></p>
</summary>

<section id="usage"><title>Utilisation</title>

    <p>Dans le fichier de configuration du serveur, utilisez la
    directive <directive module="mod_mime">AddHandler</directive> pour
    associer les fichiers ISAPI au gestionnaire
    <code>isapi-handler</code> à l'aide de l'extension de leur nom de
    fichier. Pour faire en sorte que tout fichier .dll soit traité en
    tant qu'extension ISAPI, éditez le fichier httpd.conf et ajoutez les
    lignes suivantes :</p>
    <highlight language="config">
        AddHandler isapi-handler .dll
    </highlight>

    <note>Dans les versions plus anciennes du serveur Apache, le nom du
    gestionnaire était <code>isapi-isa</code> au lieu de
    <code>isapi-handler</code>. Depuis les versions de développement 2.3
    du serveur Apache, <code>isapi-isa</code> n'est plus valide, et vous
    devrez éventuellement modifier votre configuration pour utiliser
    <code>isapi-handler</code> à la place.</note>

    <p>Le serveur Apache ne propose aucun moyen de conserver en mémoire
    un module chargé. Vous pouvez cependant précharger et garder un
    module spécifique en mémoire en utilisant la syntaxe suivante dans
    votre httpd.conf :</p>
    <highlight language="config">
        ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll
    </highlight>

    <p>Que vous ayez ou non préchargé une extension ISAPI, ces dernières
    sont toutes soumises au mêmes restrictions et possèdent les mêmes
    permissions que les scripts CGI. En d'autres termes, <directive
    module="core">Options</directive> <code>ExecCGI</code> doit être
    défini pour le répertoire qui contient le fichier .dll ISAPI.</p>

    <p>Reportez-vous aux <a href="#notes">Notes additionnelles</a> et au
    <a href="#journal">Journal du programmeur</a> pour plus de détails
    et une clarification à propos du support spécifique ISAPI fourni par
    le module <module>mod_isapi</module>.</p>
</section>

<section id="notes"><title>Notes additionnelles</title>

    <p>L'implémentation ISAPI d'Apache se conforme à toutes les
    spécifications ISAPI 2.0, à l'exception de certaines extensions
    "spécifiques Microsoft" utilisant des entrées/sorties asynchrones.
    Le modèle des entrées/sorties d'Apache ne permet pas l'écriture et
    la lecture asynchrone de la manière dont ISAPI pourrait le faire. Si
    une extension tente d'utiliser des fonctionnalités non supportées,
    comme les entrées/sorties asynchrones, un message est enregistré
    dans le journal des erreurs afin d'aider au débogage. Comme ces
    messages peuvent devenir envahissants, la directive
    <code>ISAPILogNotSupported Off</code> permet de filter ce bruit de
    fond.</p>

    <p>Si aucune option de configuration particulière n'est spécifiée,
    certains serveurs, comme Microsoft IIS, chargent l'extension ISAPI
    dans le serveur et la conservent en mémoire jusqu'à ce que
    l'utilisation de cette dernière devienne trop élevée. Apache, par
    contre, charge et décharge réellement l'extension ISAPI chaque fois
    qu'elle est invoquée, si la directive <directive
    module="mod_isapi">ISAPICacheFile</directive> n'a pas été spécifiée.
    Ce n'est pas très performant, mais le modèle de mémoire d'Apache
    fait que cette méthode est la plus efficace. De nombreux modules
    ISAPI présentent des incompatibilités subtiles avec le serveur
    Apache, et le déchargement de ces modules permet d'assurer la
    stabilité du serveur.</p>

    <p>En outre, gardez à l'esprit que si Apache supporte les extensions
    ISAPI, il <strong>ne supporte pas les filtres ISAPI</strong>. Le
    support des filtres sera peut-être ajouté dans le futur, mais n'a
    pas encore été planifié.</p>
</section>

<section id="journal"><title>Journal du programmeur</title>

    <p>Si vous écrivez des modules <module>mod_isapi</module> Apache
    2.0, vous devez limiter vos appels à
    <code>ServerSupportFunction</code> aux directives suivantes :</p>

    <dl>
      <dt><code>HSE_REQ_SEND_URL_REDIRECT_RESP</code></dt>
      <dd>Redirige l'utilisateur vers une autre adresse.<br />
      Il doit s'agir d'une URL pleinement qualifiée (comme
      <code>http://serveur/chemin</code>).</dd>

      <dt><code>HSE_REQ_SEND_URL</code></dt>
      <dd>Redirige l'utilisateur vers une autre adresse.<br />
      Ce ne doit pas être une URL pleinement qualifiée ; la mention du
      protocole ou du nom du serveur n'est pas autorisée (par exemple,
      utilisez simplement <code>/chemin</code>).<br />
      La redirection n'est pas assurée par le navigateur mais par le
      serveur lui-même.<br />
      <note type="warning"><title>Avertissement</title>
        <p>Dans sa documentation récente, Microsoft semble avoir
	abandonné la distinction entre les deux fonctions
	<code>HSE_REQ_SEND_URL</code>. Apache, quant à lui, continue de
	les traiter comme deux fonctions distinctes avec des contraintes
	et des comportements spécifiques.</p>
      </note></dd>

      <dt><code>HSE_REQ_SEND_RESPONSE_HEADER</code></dt>
      <dd>Apache accepte un corps de réponse après l'en-tête s'il se
      situe après la ligne vide (deux caractères newline consécutifs)
      dans la chaîne des arguments d'en-têtes. Ce corps ne doit pas
      contenir de caractères NULL, car l'argument des en-têtes est
      lui-même terminé par un caractère NULL.</dd>

      <dt><code>HSE_REQ_DONE_WITH_SESSION</code></dt>
      <dd>Apache considère ceci comme sans objet, car la session est
      fermée lorsque l'extension ISAPI termine son traitement.</dd>

      <dt><code>HSE_REQ_MAP_URL_TO_PATH</code></dt>
      <dd>Apache va traduire un nom virtuel en nom physique.</dd>

      <dt><code>HSE_APPEND_LOG_PARAMETER</code></dt>
      <dd>
        Ce paramètre peut intervenir dans un de ces journaux :

        <ul>
          <li>dans le composant <code>\"%{isapi-parameter}n\"</code>
	  d'une directive <directive module="mod_log_config">CustomLog</directive></li>

          <li>dans le composant <code>%q</code> avec la directive
	  <directive
	  module="mod_isapi">ISAPIAppendLogToQuery</directive>
	  <code>On</code></li>

          <li>dans le journal des erreurs avec la directive <directive
	  module="mod_isapi">ISAPIAppendLogToErrors</directive>
	  <code>On</code></li>
        </ul>

        <p>La première option, le composant
	<code>%{isapi-parameter}n</code>, est préférable et toujours
	disponible.</p>
      </dd>

      <dt><code>HSE_REQ_IS_KEEP_CONN</code></dt>
      <dd>retourne le statut négocié Keep-Alive.</dd>

      <dt><code>HSE_REQ_SEND_RESPONSE_HEADER_EX</code></dt>
      <dd>se comportera comme indiqué dans le documentation, bien que le
      drapeau <code>fKeepConn</code> soit ignoré.</dd>

      <dt><code>HSE_REQ_IS_CONNECTED</code></dt>
      <dd>renverra faux si la requête a été abandonnée.</dd>
    </dl>

    <p>Apache renvoie <code>FALSE</code> pour tout appel non supporté à
    <code>ServerSupportFunction</code>, et <code>GetLastError</code>
    renverra la valeur <code>ERROR_INVALID_PARAMETER</code>.</p>

    <p><code>ReadClient</code> extrait la partie du corps de la requête
    qui dépasse le tampon initial (défini par la directive <directive
    module="mod_isapi">ISAPIReadAheadBuffer</directive>). En fonction de
    la définition de la directive
    <directive>ISAPIReadAheadBuffer</directive> (nombre d'octets à
    mettre dans le tampon avant d'appeler le gestionnaire ISAPI), les
    requêtes courtes sont envoyées en entier à l'extension lorsque
    celle-ci est invoquée. Si la taille de la requête est trop
    importante, l'extension ISAPI doit faire appel à
    <code>ReadClient</code> pour extraire la totalité du corps de la
    requête.</p>

    <p><code>WriteClient</code> est supporté, mais seulement avec le
    drapeau <code>HSE_IO_SYNC</code> ou le drapeau "aucune option"
    (valeur <code>0</code>). Toute autre requête
    <code>WriteClient</code> sera rejetée avec une valeur de retour
    <code>FALSE</code>, et <code>GetLastError</code> renverra la valeur
    <code>ERROR_INVALID_PARAMETER</code></p>

    <p><code>GetServerVariable</code> est supporté, bien que les
    variables étendues de serveur n'existent pas (comme défini par
    d'autres serveurs). Toutes les variables d'environnement CGI
    usuelles d'Apache sont disponibles à partir de
    <code>GetServerVariable</code>, ainsi que les valeurs
    <code>ALL_HTTP</code> et <code>ALL_RAW</code>.</p>

    <p>Depuis httpd 2.0, <module>mod_isapi</module> propose des
    fonctionnalités supplémentaires introduites dans les versions
    actualisées de la spécification ISAPI, ainsi qu'une émulation
    limitée des entrées/sorties asynchrones et la sémantique
    <code>TransmitFile</code>. Apache httpd supporte aussi le préchargement
    des .dlls ISAPI à des fins de performances.</p>
</section>

<directivesynopsis>
<name>ISAPICacheFile</name>
<description>Fichiers .dll ISAPI devant être chargés au
démarrage</description>
<syntax>ISAPICacheFile <var>chemin-fichier</var>
[<var>chemin-fichier</var>]
...</syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>

<usage>
    <p>Cette directive permet de spécifier une liste, séparés par des
    espaces, de noms de fichiers devant être chargés au démarrage
    du serveur Apache, et rester en mémoire jusqu'à l'arrêt du serveur.
    Cette directive peut être répétée pour chaque fichier .dll ISAPI
    souhaité. Le chemin complet du fichier doit être spécifié. Si le
    chemin n'est pas absolu, il sera considéré comme relatif au
    répertoire défini par la directive <directive
    module="core">ServerRoot</directive>.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ISAPIReadAheadBuffer</name>
<description>Taille du tampon de lecture anticipée envoyé aux extensions
ISAPI</description>
<syntax>ISAPIReadAheadBuffer <var>taille</var></syntax>
<default>ISAPIReadAheadBuffer 49152</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>

<usage>
    <p>Cette directive permet de définir la taille maximale du tampon de
    lecture anticipée envoyé aux extensions ISAPI lorsqu'elles sont
    initialement invoquées. Toute donnée restante doit être extraite en
    faisant appel à <code>ReadClient</code> ; certaines extensions ISAPI
    peuvent ne pas supporter la fonction <code>ReadClient</code>.
    Pour plus de détails, veuillez vous adresser à l'auteur de
    l'extension ISAPI.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ISAPILogNotSupported</name>
<description>Journalisation des demandes de fonctionnalités non
supportées de la part des extensions ISAPI</description>
<syntax>ISAPILogNotSupported on|off</syntax>
<default>ISAPILogNotSupported off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>

<usage>
    <p>Cette directive permet d'enregistrer dans le journal des erreurs
    toutes les demandes de fonctionnalités non supportées de la part des
    extensions ISAPI. Ceci peut aider les administrateurs à décortiquer
    certains problèmes. Lorsqu'elle a été définie à "on" et si tous les
    modules ISAPI fonctionnent, elle peut être redéfinie à "off".</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ISAPIAppendLogToErrors</name>
<description>Enregistrement des requêtes
<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
dans le journal des erreurs</description>
<syntax>ISAPIAppendLogToErrors on|off</syntax>
<default>ISAPIAppendLogToErrors off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>

<usage>
    <p>Cette directive permet d'enregistrer les requêtes
    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
    ISAPI dans le journal des erreurs.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ISAPIAppendLogToQuery</name>
<description>Enregistre les requêtes
<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
dans la partie arguments de la requête</description>
<syntax>ISAPIAppendLogToQuery on|off</syntax>
<default>ISAPIAppendLogToQuery on</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>

<usage>
    <p>Cette directive permet d'enregistrer les requêtes
    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
    ISAPI dans la partie arguments de la requête (ajouté au composant
    <code>%q</code> de la directive <directive
    module="mod_log_config">CustomLog</directive>).</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ISAPIFakeAsync</name>
<description>Emulation du support des entrées/sorties asynchrones pour
les appels ISAPI</description>
<syntax>ISAPIFakeAsync on|off</syntax>
<default>ISAPIFakeAsync off</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>

<usage>
    <p>Lorsquelle est définie à "on", cette directive permet d'émuler le
    support des entrées/sorties asynchrones pour les appels ISAPI.</p>
</usage>
</directivesynopsis>

</modulesynopsis>

