| <?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> | |