Interaktion mit externen Diensten
Konzepte des Common Gateway Interface (CGI)
HTML bietet "nur" statische Seiten
Browser Erweiterungen
JavaScript, (Netscape) Plugins, Java Applets
Server Erweiterungen
CGI Common Gateway Interface,
PHP, Java Servlets,
HTTPD APIs, Application Programming Interfaces
Script-Sprachen: JavaScript, VBScript, ECMA-Script (JavaScript)
Programmteile werden in HTML Seiten eingebettet
Vorteile:
Einfache Erweiterung des Browsers
z.B. Feldprüfungen
weit verbreitet, System unabhängig
nicht das gesamte Interface muß programmiert werden
Nachteile:
eingeschränkter Funktionsumfang
Java Applets (Java)
Programme werden wie Bilder übers Netz geladen und vom Browser ausgeführt
Vorteile:
Effizient
Bessere Oberfläche (GUI) realisierbar
Status-Information werden gewartet
Nachteile:
das gesamte Interface muß programmiert werden
Beispiele Financial Portfolio, Applets
(Netscape) Plugins
Programme müssen lokal installiert werden und werden vom Browser wie externe Viewer geladen und ausgeführt
Vorteile:
Mächtige Erweiterung des Browsers möglich
z.B. Virtual Reality Extensions
Nachteile:
nur Netscape
abhängig vom Betriebsystem
muss vollständig neu programmiert werden
Gateway Programme:
Skripten, Umgebungsvariablen
Vorteile:
schnell zu Erstellen
einfacher Zugang, alles machbar
unabhängig vom WWW Server
Nachteile:
Belastet WWW Server
Verwaltungsaufwand für Status-Informationen
Anwendungen:
CONSULT-Web,
FZ Data-Warehouse,
OSIS Online Steel Information System,
Lehmanns Online Bookshop.
Application Programming Interface (API)
NSAPI
von Netscape,
ISAPI von
Process Software,
Apache-API von Apache
Server Side Includes (SSI)
PHP,
Active Server Pages (ASP) von MS,
Java Server Pages (JSP),
LiveWire von Netscape
Java Servlets
Vorteile:
Effizient
Status-Information werden verwaltet
Nachteil:
teilweise Abhängigkeit vom Server
Common Gateway Interface
ermöglicht beliebige vorbereitete Programme auszuführen.
Eingabeinformationen vom WWW-Client
liefern HTML Daten an den WWW-Client zurück
spezifiziert erforderliche Schnittstellen
Bereitstellung von HTML Informationen on the fly
interaktive Antworten
Konvertierung von Handbuchseiten in HTML versenden,
Verbindung zu WAIS, archie, SQL, Datenbank;
Stellen einer Anfrage an die Datenbank
Aufbereiten der Antwort in HTML
Interaktion mit Benutzern des WWW-Servers, z.B. Warenauswahl und Bestellung.
non-html Dokumente: Volltext Dokumenten-Systeme.
selbständig vom Betriebssystem ausgeführte Programme
in jeder gängigen Programmiersprache
Bedingungen:
Umgebungsvariablen (environment variablen)
Standart-Eingabe (stdin)
Standart-Ausgabe (stdout)
Verbreitete Programmiersprachen
PERL (Practical Evaluation and Reporting Language),
diverse Unix Shells:
sh, csh, tcsh, bash, ksh, zsh
REXX (REstructured eXtended eXecutor),
Python,
TCL (Tool Command Language),
C oder C++.
Interpretierte Sprachen bevorzugt.
Autoren der ersten WWW-Server
Aktuelle Version CGI/1.1.
Wie werden die Informationen zwischen dem WWW-Client, WWW-Server und dem CGI Program ausgetauscht ?
http://server-ip/path/cgi-prog/path-info?query-string
Zugriffsmethode (http:
),
Servername bzw. IP-Adresse (//server-ip
)
Pfad zur Resource (path
).
Beginnt meist mit cgi-bin
.
Konfiguration des WWW-Servers (httpd.conf
)
Name des CGI-Programs (cgi-prog
)
.pl
bedeutet ein Perl Program
Hinweis: keine Kommandozeilenparameter an das CGI Program
D.h. cgi-prog arg1 arg2
geht nicht
Empfang auf 3 Arten:
QUERY_STRING
Umgebungsvariable,
PATH_INFO
Umgebungsvariable,
direkt über Stdin
.
Query-String Methode
http://server-ip/path/cgi-prog/path-info?query-string
query-string
in Umgebungsvariable QUERY_STRING
URL Kodierungsschema
+
%xx
Angabe von Hand oder
vom WWW-Client generiert
z.B. von <ISINDEX>
oder <FORM>
Path-Info Methode
http://server-ip/path/cgi-prog/path-info?query-string
/path-info
in Umgebungsvariable PATH_INFO
nicht im URL Schema kodiert
Angabe nur explizit
z.B. Grundinformationen wie die aktuelle Sprache
/cgi-prog/language=english?query-string
.
Stdin
-Datei Methode
Wird per Pipe gesendet und von Stdin
gelesen
Kodierung wie im QUERY_STRING
Dekodierung erforderlich
Auswahl mit <FORM>
Keyword und
Parameter METHOD="POST"
Länge in der Umgebungsvariablen CONTENT_LENGTH
End-of-File für Stdin
ist nicht definiert
Rückgabe durch Stdout
"Datei"
im richtigen Format: HTML
Header: 2 Zeilen ASCII Text
1. Zeile MIME-Type oder Location
2. Zeile leer
MIME Inhaltstyp
Content-Type: m-type/m-stype
Beispiele
text/html
für HTML Text
text/plain
für ASCII Text
auch für Graphiken, Sound und Videos
Ortsangabe
Location: ftp://host/dir/dateix.txt
Der Client erzeugt eine FTP-Verbindung
Formulare: HTML <FORM>
Keyword
zwei Parameter
METHOD="GET"
, Variable QUERY_STRING
METHOD="POST"
, "Datei" Stdin
Daten des Formulars
NAME
Keyword: Namen für Eingabefelder
Inhalt der Eingabefelder wird mit Namen gesendet
Folge von name=content
Paaren
durch &
getrennt
wird automatisch kodiert
im CGI Program dekodieren und verwenden
Feststellen der Übertragungsmethode
Ansehen der Umgebungsvariablen REQUEST_METHOD
.
Mögliche Werte:
GET
, POST
, HEAD
Lesen von CONTENT_LENGTH
Bytes von
QUERY_STRING
oder Stdin
.
URL Dekodierung der Zeichenkette.
Aufspaltung der Zeichenkette entlang &
.
Aufspaltung der Paare name=content
entlang =
.
Verwenden der so aufbereiteten Informationen.
CGI 1.0 oder 1.1:
Umgebungsvariablen (environment variables),
Standard-Eingabe (stdin) sowie
Standard-Ausgabe (stdout),
die Kommandozeilenparameter (command line).
Alle Spezifikationen der Version 1.1 sollen auch von zukünfigen Erweiterungen erfüllt werden.
Interaktion erfordert Browser oder/und Server Erweiterungen
auf Server Seite gibt es viele flexibel einsetzbare Instrumente
auf der Browser Seite ist man durch die Möglichkeiten des jeweiligen marktbeherschenden Browsers eingeschränkt
CGI kann zusammen mit vielen Programmiersprachen eingesetzt werden
CGI ist nach wie vor eine wichtige Web-Technik
© Universität Mannheim, Rechenzentrum, 1998-2002.
Heinz Kredel Last modified: Wed Dec 26 13:15:23 MET 2001