Serveur Apache HTTP Version 2.4
Description: | Extensions ISAPI au coeur d'Apache pour Windows |
---|---|
Statut: | Base |
Identificateur�de�Module: | isapi_module |
Fichier�Source: | mod_isapi.c |
Compatibilit�: | Win32 only |
Ce module impl�mente l'API des extensions Internet Server (l'application IIS de Microsoft). Il permet � Apache pour Windows de servir les extensions Internet Server (par exemple les modules .dll ISAPI), compte tenu des restrictions sp�cifi�es.
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. Merci de ne pas soumettre ce genre de probl�me dans les listes d'Apache ou dans les pages de rapports de bogues.
Dans le fichier de configuration du serveur, utilisez la
directive AddHandler
pour
associer les fichiers ISAPI au gestionnaire
isapi-handler
� 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 apache2.conf et ajoutez les
lignes suivantes :
AddHandler isapi-handler .dll
isapi-isa
au lieu de
isapi-handler
. Depuis les versions de d�veloppement 2.3
du serveur Apache, isapi-isa
n'est plus valide, et vous
devrez modifier votre configuration pour utiliser
isapi-handler
� sa place.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 apache2.conf :
ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll
Que vous ayez ou non pr�charg� une extension ISAPI, ces derni�res
sont toutes soumises aux m�mes restrictions et poss�dent les m�mes
permissions que les scripts CGI. En d'autres termes, Options
ExecCGI
doit �tre
d�fini pour le r�pertoire qui contient le fichier .dll ISAPI.
Reportez-vous aux Notes additionnelles et au
Journal du programmeur pour plus de d�tails
et une clarification � propos du support sp�cifique ISAPI fourni par
le module mod_isapi
.
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
ISAPILogNotSupported Off
permet de filter ce bruit de
fond.
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, en
revanche, charge et d�charge r�ellement l'extension ISAPI chaque fois
qu'elle est invoqu�e, si la directive ISAPICacheFile
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.
En outre, gardez � l'esprit que si Apache supporte les extensions ISAPI, il ne supporte pas les filtres ISAPI. Le support des filtres sera peut-�tre ajout� dans le futur, mais n'a pas encore �t� planifi�.
Si vous �crivez des modules mod_isapi
Apache
2.0, vous devez limiter vos appels �
ServerSupportFunction
aux directives suivantes :
HSE_REQ_SEND_URL_REDIRECT_RESP
http://serveur/chemin
).HSE_REQ_SEND_URL
/chemin
).Dans sa documentation r�cente, Microsoft semble avoir
abandonn� la distinction entre les deux fonctions
HSE_REQ_SEND_URL
. Apache, quant � lui, continue de
les traiter comme deux fonctions distinctes avec des contraintes
et des comportements sp�cifiques.
HSE_REQ_SEND_RESPONSE_HEADER
HSE_REQ_DONE_WITH_SESSION
HSE_REQ_MAP_URL_TO_PATH
HSE_APPEND_LOG_PARAMETER
\"%{isapi-parameter}n\"
d'une directive CustomLog
%q
avec la directive
ISAPIAppendLogToQuery
On
ISAPIAppendLogToErrors
On
La premi�re option, le composant
%{isapi-parameter}n
, est pr�f�rable et toujours
disponible.
HSE_REQ_IS_KEEP_CONN
HSE_REQ_SEND_RESPONSE_HEADER_EX
fKeepConn
soit ignor�.HSE_REQ_IS_CONNECTED
Apache renvoie FALSE
pour tout appel non support� �
ServerSupportFunction
, et GetLastError
renverra la valeur ERROR_INVALID_PARAMETER
.
ReadClient
extrait la partie du corps de la requ�te
qui d�passe le tampon initial (d�fini par la directive ISAPIReadAheadBuffer
). En fonction de
la d�finition de la directive
ISAPIReadAheadBuffer
(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 �
ReadClient
pour extraire la totalit� du corps de la
requ�te.
WriteClient
est support�, mais seulement avec le
drapeau HSE_IO_SYNC
ou le drapeau "aucune option"
(valeur 0
). Toute autre requ�te
WriteClient
sera rejet�e avec une valeur de retour
FALSE
, et GetLastError
renverra la valeur
ERROR_INVALID_PARAMETER
GetServerVariable
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
GetServerVariable
, ainsi que les valeurs
ALL_HTTP
et ALL_RAW
.
Depuis Apache httpd 2.0+, mod_isapi
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
TransmitFile
. Apache httpd supporte �galement le pr�chargement
des .dlls ISAPI � des fins de performances.
Description: | Enregistrement des requ�tes
HSE_APPEND_LOG_PARAMETER de la part des extensions ISAPI
dans le journal des erreurs |
---|---|
Syntaxe: | ISAPIAppendLogToErrors on|off |
D�faut: | ISAPIAppendLogToErrors off |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Base |
Module: | mod_isapi |
Cette directive permet d'enregistrer les requ�tes
HSE_APPEND_LOG_PARAMETER
de la part des extensions
ISAPI dans le journal des erreurs.
Description: | Enregistre les requ�tes
HSE_APPEND_LOG_PARAMETER de la part des extensions ISAPI
dans la partie arguments de la requ�te |
---|---|
Syntaxe: | ISAPIAppendLogToQuery on|off |
D�faut: | ISAPIAppendLogToQuery on |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Base |
Module: | mod_isapi |
Cette directive permet d'enregistrer les requ�tes
HSE_APPEND_LOG_PARAMETER
de la part des extensions
ISAPI dans la partie arguments de la requ�te (ajout� au composant
%q
de la directive CustomLog
).
Description: | Fichiers .dll ISAPI devant �tre charg�s au d�marrage |
---|---|
Syntaxe: | ISAPICacheFile chemin-fichier
[chemin-fichier]
... |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Base |
Module: | mod_isapi |
Cette directive permet de sp�cifier une liste de noms de fichiers, s�par�s par des
espaces, 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 ServerRoot
.
Description: | �mulation du support des entr�es/sorties asynchrones pour les appels ISAPI |
---|---|
Syntaxe: | ISAPIFakeAsync on|off |
D�faut: | ISAPIFakeAsync off |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Base |
Module: | mod_isapi |
Lorsquelle est d�finie � "on", cette directive permet d'�muler le support des entr�es/sorties asynchrones pour les appels ISAPI.
Description: | Journalisation des demandes de fonctionnalit�s non support�es de la part des extensions ISAPI |
---|---|
Syntaxe: | ISAPILogNotSupported on|off |
D�faut: | ISAPILogNotSupported off |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Base |
Module: | mod_isapi |
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".
Description: | Taille du tampon de lecture anticip�e envoy� aux extensions ISAPI |
---|---|
Syntaxe: | ISAPIReadAheadBuffer taille |
D�faut: | ISAPIReadAheadBuffer 49152 |
Contexte: | configuration du serveur, serveur virtuel, r�pertoire, .htaccess |
AllowOverride: | FileInfo |
Statut: | Base |
Module: | mod_isapi |
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 � ReadClient
; certaines extensions ISAPI
peuvent ne pas supporter la fonction ReadClient
.
Pour plus de d�tails, veuillez vous adresser � l'auteur de
l'extension ISAPI.