Internet Server Application Programming Interface

Short description: API of Microsoft Internet Information Services

The Internet Server Application Programming Interface (ISAPI) is an n-tier API of Internet Information Services (IIS), Microsoft's collection of Windows-based web server services. The most prominent application of IIS and ISAPI is Microsoft's web server.

The ISAPI has also been implemented by Apache's mod_isapi module so that server-side web applications written for Microsoft's IIS can be used with Apache. Other third-party web servers like Zeus Web Server offer ISAPI interfaces, too.

Microsoft's web server application software is called Internet Information Services, which is made up of a number of "sub-applications" and is very configurable. ASP.NET is one such slice of IIS, allowing a programmer to write web applications in their choice of programming language (VB.NET, C#, F#) that's supported by the Microsoft .NET CLR. ISAPI is a much lower-level programming system, giving much better performance, at the expense of simplicity.

## Contents

* 1 ISAPI applications
* 1.1 Extensions
* 1.2 Filters
* 1.3 Common ISAPI applications
* 2 ISAPI development
* 3 See also
* 4 References

## ISAPI applications

ISAPI consists of two components: Extensions and Filters.[1] These are the only two types of applications that can be developed using ISAPI. Both Filters and Extensions must be compiled into DLL files which are then registered with IIS to be run on the web server.

ISAPI applications can be written using any language which allows the export of standard C functions, for instance C, C++, Delphi. There are a couple of libraries available which help to ease the development of ISAPI applications, and in Delphi Pascal the Intraweb components for web-application development. MFC includes classes for developing ISAPI applications. Additionally, there is the ATL Server technology which includes a C++ library dedicated to developing ISAPI applications.

### Extensions

ISAPI Extensions are true applications that run on IIS. They have access to all of the functionality provided by IIS. ISAPI extensions are implemented as DLLs that are loaded into a process that is controlled by IIS. Clients can access ISAPI extensions in the same way they access a static HTML page. Certain file extensions or a complete folder or site can be mapped to be handled by an ISAPI extension.

### Filters

ISAPI filters are used to modify or enhance the functionality provided by IIS. They always run on an IIS server and filter every request until they find one they need to process. Filters can be programmed to examine and modify both incoming and outgoing streams of data. Internally programmed and externally configured priorities determine in which order filters are called.

Filters are implemented as DLLs and can be registered on an IIS server on a site level or a global level (i.e., they apply to all sites on an IIS server). Filters are initialised when the worker process is started and listens to all requests to the site on which it is installed.

Common tasks performed by ISAPI filters include:

* Changing request data (URLs or headers) sent by the client
* Controlling which physical file gets mapped to the URL
* Controlling the user name and password used with anonymous or basic authentication
* Modifying or analyzing a request after authentication is complete
* Modifying a response going back to the client
* Running custom processing on "access denied" responses
* Running processing when a request is complete
* Run processing when a connection with the client is closed
* Performing special logging or traffic analysis.
* Performing custom authentication.
* Handling encryption and compression.

### Common ISAPI applications

This is a list of common ISAPI applications implemented as ISAPI extensions:

* Active Server Pages (ASP), installed as standard
* ActiveVFP, Active Visual FoxPro installed on IIS
* ASP.NET, installed as standard on IIS 6.0 onwards
* ColdFusion, later versions of ColdFusion are installable on IIS
* Perl ISAPI (aka Perliis), available for free to install
* PHP, available for free to install, not maintained anymore.[2]

## ISAPI development

ISAPI applications can be developed using any development tool that can generate a Windows DLL. Wizards for generating ISAPI framework applications have been available in Microsoft development tools since Visual C++ 4.0.

## See also

* Internet Information Services
* ATL Server
* SAPI
* C++
* PHP
* FastCGI

* v
* t
* e

Web interfaces

Server-side|

| Protocols|

* HTTP
* CGI
* SCGI
* FCGI
* AJP
* WSRP
* WebSocket

|

Server APIs|

* C NSAPI
* C ASAPI
* C ISAPI
* COM ASP
* Java servlet
* container
* CLI OWIN
* ASP.NET Handler
* Python WSGI
* Ruby Rack
* JavaScript JSGI
* Perl PSGI
* Lua WSAPI
* Portlet
* container

Apache modules|

* mod include
* mod jk
* mod lisp
* mod mono
* mod parrot
* mod perl
* mod php
* mod proxy
* mod python
* mod wsgi
* mod ruby
* Phusion Passenger

Topics|

* Web resource vs. Web service
* Open API
* Webhook
* Application server
* comparison
* Scripting

Client-side|

| Browser APIs|

* C NPAPI
* LiveConnect
* XPConnect
* C NPRuntime
* C PPAPI
* NaCl
* ActiveX
* BHO
* XBAP

|

Web APIs|

| W3C|

* Audio
* Canvas
* CORS
* DOM
* DOM events
* EME
* File
* Geolocation
* IndexedDB
* MSE
* SSE
* SVG
* Video
* WebAuthn
* WebRTC
* WebSocket
* Web messaging
* Web storage
* Web worker
* XMLHttpRequest
* WebAssembly

|

Khronos|

* WebCL
* WebGL

Others|

* Gears
* Web SQL Database (formerly W3C)
* WebUSB

Topics|

* Ajax and Remote scripting vs. DHTML
* Mashup
* Web IDL
* Scripting

Topics|

* Dynamic web page
* Web standards
* Rich web application
* Web API security
* Web application
* Web framework

## References

1. ↑ Hadi., Nahari (2011). Web commerce security : design and development. Krutz, Ronald L.. Indianapolis: Wiley Pub. pp. 157. ISBN 9781118098899. OCLC 757394142.
2. ↑ "PHP :: Bug #48299 :: Missing php5isapi.DLL in package". https://bugs.php.net/bug.php?id=48299.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Internet Server Application Programming Interface. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Internet_Server_Application_Programming_Interface&oldid=4219414"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template