ISAPI
ISAPI est l'acronyme de Internet Server Application Programming Interface.
Recherche sur Google Images :
Source image : www.west-wind.com Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur. |
Définitions :
- Interface de programmation d'applications conçue particulièrement pour les serveurs Web qui exécutent Internet Information Server (IIS).... (source : office.microsoft)
ISAPI est l'acronyme de Internet Server Application Programming Interface.
Il s'agit de l'interface de programmation (ou API) de l'application IIS de Microsoft. Elle a été conçue par Process Software Corporation, Microsoft Corporation et un petit nombre d'autres éditeurs. L'objectif est de limiter la création de processus fils pour diminuer la latence. Pour cela, ISAPI charge du code partagée depuis des DLL dans le processus du serveur.
Le désavantage d'ISAPI, comparé par exemple au CGI, est que le code chargé dans le serveur compromet son intégrité. Des extensions mal conçues peuvent avoir un impact sur les performances voir dans le pire des cas le crasher.
ISAPI est essentiellement utilisé dans la version "WebServer" de Windows Server 2003.
ISAPI a aussi été implémenté par Apache via son module mod_isapi qui permet aux applications web rédigées pour IIS de fonctionner sur Apache.
Implémentation d'ISAPI selon version IIS
Quand qu'un navigateur demande un lien de type Default. Asp, IIS (w3wp. exe or aspnet_wp. exe) intercepte la requête web et après analyse de l'extension du fichier ; le passe a l'application ISAPI De nom ssi. dll. SSI est un service supporté par défaut en interne par IIS ; mais ce service peut être déplacé sous la forme d'un lien vers une bibliothèque (dll) compatible ISAPI. Ce module travaille par conséquent de manière indépendante du serveur.
Le plus grand désavantage de ISAPI est l'augmentation du temps de développement comparé a des technologies comme PHP et ASP qui supportent en natif la gestion des sessions. Des problèmes de sécurité apparaissent aussi du fait de l'utilisation du langage C et de la possibilité de saturation du cache (buffer overflows).
Contrairement a CGI, la version ISAPI 5.0 et précédente est éxecutée dans le même espace de travail que IIS. Ceci évite l'appel a de nombreuses fonctions interprocessus et le lancement d'applications externes perfectionnant les performances. Malheureusement, si une application ISAPI plante, c'est tout IIS qui plante. Depuis IIS 6, une application ISAPI (C, C++, Delphi) est compilée sous forme de dll qui, après enregistrement auprès de IIS et selon la configuration de IIS, peuvent s'exécuter dans un emplacement différent de celui de IIS.
Les types d'applications supportés par ISAPI
Il existe deux types d'ISAPI ; les extensions et les filtres. Dans l'ensemble des cas, ils sont implémentés sous forme de dll mais leurs méthodes d'initialisation, leur chargement, leur accès et leurs fonctionnalités peuvent différer.
Les filtres ont les limitations suivantes
- ils n'ont accès qu'au header de la page html pas le body
- ils se configurent pour un site pas pour un répertoire virtuel
- ils fonctionnent sur le mode synchrone et bloquent l'interface utilisateur si calcul long
- ils ont accès à moins de fonctionnalités que les applications ISAPI
Extensions
Les extension ISAPI sont de vrai applications qui fonctionnent sur IIS. Ces applications ont accès à l'ensemble des fonctionnalités proposées par IIS. Elles sont implémentées sous forme de DLL et chargées sous contrôle de IIS. Les clients web ont accès aux fonctionnalités de la même façon que s'ils avaient accès a une page HTML statique. L'accès à ISAPI se fait sous la forme d'un fichier, d'un répertoire ou d'un site.
Filtres
Les filtres ISAPI sont utilisé pour modifier ou perfectionner les fonctionnalités offerte par défaut par IIS. Le fichier de configuration de IIS définit l'ordre d'exécution des filtres et le niveau (sites ou répertoires). Implémenté sous forme de dlls, les filtres sont toujours chargés dans IIS en tâche de fond. Ils examinent et modifient, si indispensable, les données transitant par le protocole http.
Les tâches communes exécutées que gèrent les filtres ISAPI sont :
- Changer le header et les url demandés par le client (rewrite)
- Contrôler le processus d'authentification par nom et le mot de passe
- Modifier et analyser les requêtes après authentification réussie
- Contrôler quel fichier est accessible aux urls ("access denied")
- Contrôler les dispositifs d'encryptage et de compression.
- Fermer la session, l'authentification, lorsque un client quitte le serveur
- Maintenir des statistiques du serveur (liste des activités, du trafic, des pages demandées)
Installer isapi
C:\WINNT\Microsoft.NET\Framework\vx.y.z\aspnet_regiis.exe -i
- SSI
- Rewrite
- port80
- httpZip
- ServerMask
- ISAPIZip : diminué la bande passante en compressant les données
- Search Engine Friendly : permet d'utliser html au lieu d'asp
- linkfreeze : permet au page dynamique d'être indexé
- Ionic's Isapi Rewrite Filter : supporte les extension non microsoft
- LeechGuard : cache url des images
- authentification : dispositif d'authentification
- ip2location :localise (latitude longitude postal) les clients
Liste des extensions ISAPI
- soap
- Tracing :
- XLSharing : pour partager des feuilles excel en ligne
- fastCGI : php isapi/nsapi
- zipenable
liste des serveurs supportant ISAPI
- Abyss Web Server
- dwebpro : web statique sur CD, DVD]
- pyisapie : extension qui supporte django
Liens externes
Recherche sur Amazone (livres) : |
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 17/03/2009.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.