## CGI und ISAPI

Eine CGI stand-alone Webserver Anwendung ist eine Konsolenanwendung, die Client-Anforderungen von der Standardeingabe entgegennimmt, bearbeitet, und das Ergebnis über die Standardausgabe zurückgibt. Jede Anforderung wird durch eine separate Instanz der Anwendung bearbeitet.

- Vorteil: Jede Anforderung eröffnet einen unabhängigen Prozess auf dem Server, die nach dem Ausführen geschlossen wird. Es ist kein Problem mehrere Kopien von WebQuiz.exe in verschiedenen Verzeichnissen gleichzeitig auf dem selben Server zu benutzen (z.B. um verschiedene Benutzersprachen oder verschiedene Sets von Fragensammlungen einzusetzen).

- Nachteil: Jede Anforderung muss einen eigenen Prozess auf dem Server generieren. Die Aufgabe eine Datei zu erzeugen, einen separaten Prozess zu starten, ihn auszuführen, eine weitere Datei zu schreiben und sie zurückzusenden, ist relativ langsam.

Eine ISAPI Webserver Anwendung ist eine DLL, die durch den Webserver geladen wird. Jede Anforderung wird automatisch in einem separaten Ausführungs - Thread ausgeführt.

- Vorteil: Da WebQuiz.dll nur einmal geladen wird, werden viele Initialisierungs- und "Datei lesen"- Aufgaben gespart. Die ISAPI - Version arbeitet daher sehr viel schneller als die CGI - Version.

- Nachteil: WebQuiz.dll wird durch die erste Anforderung ins RAM geladen. Dort bleibt sie, bis Sie den Webserver herunterfahren.

- Das bedeutet, Sie können nur eine Kopie von WebQuiz.dll in nur einem Verzeichnis benutzen. Sie können ISAPI WebQuiz nicht zwei mal in verschiedenen Verzeichnissen auf dem selben Server installieren, um z.B. zwei verschiedene Sprachen für die Benutzeroberfläche zu erhalten.

- Falls Nachfrage besteht, werde ich bald ein oder zwei zusätzliche Ausgaben von ISAPI WebQuiz publizieren, die andere Namen für WebQuiz.dll verwenden. Auf diese Weise wird es möglich sein jede Ausgabe ein Mal auf dem selben Server zu installieren.
- Es ist nicht möglich WebQuiz.dll durch eine neue Version zu ersetzen, währenddem es im RAM präsent ist. Das bedeutet, Sie müssen Ihren Webserver herunterfahren, oder sogar den ganzen Computer neu booten, um WebQuiz.dll zu löschen oder einen Update davon zu installieren.

- Die ISAPI - Version kennt zwei zusätzliche Befehle:

- /close, also http://www.localhost/cgi-bin/WebQuiz/WebQuiz.dll/close beendet alle Aktivitäten von WebQuiz.dll. Damit werden z. B. die Datenbank Dateien freigegeben, und können gelöscht werden. WebQuiz.dll bleibt trotzdem im RAM.
- /initialize initialisiert alle Aktivitäten neu.

Update 11. Januar 2002