Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Internet-Technologien Thema: CGI / Michael Gründler 1 Seminar Internet Technologien SS 98 Vortrag: Common Gateway Interface gehalten von: Michael.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Internet-Technologien Thema: CGI / Michael Gründler 1 Seminar Internet Technologien SS 98 Vortrag: Common Gateway Interface gehalten von: Michael."—  Präsentation transkript:

1 Seminar Internet-Technologien Thema: CGI / Michael Gründler 1 Seminar Internet Technologien SS 98 Vortrag: Common Gateway Interface gehalten von: Michael Gründler

2 Seminar Internet-Technologien Thema: CGI / Michael Gründler 2 CGI Gliederung Teil I Motivation / Was ist CGI Funktionsweise Die Schnittstelle CGI-Sprachen Vom Client zum Server –Exkurs nach HTML-Forms –Die Methoden Get und Post –Übergabe und Kodierung

3 Seminar Internet-Technologien Thema: CGI / Michael Gründler 3 CGI Gliederung Teil II Vom Server zum Client –Dekodierung der Eingabedaten –Umgebungsvariablen –Erzeugung von HTML Dokumenten –Header Versteckte Felder und Cookies Sicherheitsaspekte Abschließende Bemerkungen Quellen

4 Seminar Internet-Technologien Thema: CGI / Michael Gründler 4 Motivation CGI ermöglicht: –Zugriffszähler –Gästebücher –Datenbankabfragen –Animation –Formularabfragen –Online-Registrierungen –Realisierung von Suchmaschinen...

5 Seminar Internet-Technologien Thema: CGI / Michael Gründler 5 Was ist CGI ? Common Gateway Interface (Allgemeine Vermittlungsrechner-Schnittstelle) aktuelle Version CGI/1.1 Übertragung mittels HTTP Protokoll ermöglicht dynamisch HTML-Dokumente zu erstellen ermöglicht externe Programme aus HTML Dokumenten heraus zu starten dient als Gateway für z.B. Datenbanken

6 Seminar Internet-Technologien Thema: CGI / Michael Gründler 6 Funktionsweise vom CGI

7 Seminar Internet-Technologien Thema: CGI / Michael Gründler 7 Die Schnittstelle WWW-Server muß CGI unterstützen Verzeichnis festlegen, meist cgi-bin Benutzer muß Berechtigung haben, CGI-Programme auszuführen CGI ist sprachunabhängig Folgende Bedingungen müssen erfüllt sein: –Lesen von Standard in –Schreiben auf Standard out –Zugriff auf Umgebungsvariablen muß möglich sein

8 Seminar Internet-Technologien Thema: CGI / Michael Gründler 8 CGI Sprachen Alle Sprachen möglich, die die 3 Bedingungen erfüllen Perl oft benutzt –Interpretersprache –kann gut mit regulären Ausdrücken umgehen –bietet gute und einfache Möglichkeiten der Textmanipulation –ist noch frei erhältlich auch C, C++, TCL, Basic...

9 Seminar Internet-Technologien Thema: CGI / Michael Gründler 9 Exkurs nach HTML-FORMS I Formulare erstellen mit HTML-FORMS leitet ein Formular ein erstellt ein Textfeld Scroll-Listen Radiobuttons Checkbox Menues

10 Seminar Internet-Technologien Thema: CGI / Michael Gründler 10 Beispiel HTML-FORMS

11 Seminar Internet-Technologien Thema: CGI / Michael Gründler 11 Exkurs nach HTML-FORMS II Submit Button Absende Button Reset-Button "Lösch" Button beendet Formular

12 Seminar Internet-Technologien Thema: CGI / Michael Gründler 12 Die Methoden GET und POST GET –Eingabedaten werden an die URL herangehängt –Server übermittelt Daten an QUERY_STRING Vorteil –nicht unbedingt Formular erstellen –schneller als POST Nachteil –Lesbarkeit der URL leidet –zu lange Anfragestrings werden von manchen Browsern abgeschnitten werden

13 Seminar Internet-Technologien Thema: CGI / Michael Gründler 13 Die Methoden GET und POST POST –Anfragedaten werden nicht transparent übertragen, sondern über die Standardeingabe Vorteil –Eingabedaten können beliebig lang sein Nachteil –URL kann nicht als Bookmark gespeichert werden

14 Seminar Internet-Technologien Thema: CGI / Michael Gründler 14 Übergabe und Kodierung Bildung von KEY/VALUE - Paaren Paare werden durch & voneinander getrennt KEY und VALUE werden durch = voneinander getrennt Leerzeichen werden durch + ersetzt Umlaute, Sonderzeichen durch hexadezimalen ASCII Code ersetzt, % dient als Kennung Beispiel: –vorname=Michael+J%FCrgen&nachname=Gr%FCndler

15 Seminar Internet-Technologien Thema: CGI / Michael Gründler 15 Dekodierung der Eingabedaten Lese REQUEST_METHOD, und ermittle das Request- Protokoll (Post oder Get) Bei "Get" QUERY_STRING auslesen Bei "Post" CONTENT_LENGTH auslesen und Anzahl Zeichen von STD IN lesen QUERY_STRING bei "&" zerlegen, separiert die Key/Value Paare Hexadezimal- und Pluszeichen dekodieren

16 Seminar Internet-Technologien Thema: CGI / Michael Gründler 16 Umgebungsvariablen WWW-Server stellt Umgebungsvariablen zur Verfügung Client übergibt Informationen an Server, der schreibt sie in die Umgebungsvariablen CGI- Programme müssen darauf zugreifen können Nicht alle werden benutzt, oder unterstützt

17 Seminar Internet-Technologien Thema: CGI / Michael Gründler 17 Umgebungsvariablen

18 Seminar Internet-Technologien Thema: CGI / Michael Gründler 18 Ausgabe vom CGI Grundlegende Ausgabe: –Text oder HTML Dokument aber auch –Grafik oder Binärdatei –Anweisung: Virtuelles Dokument in Cache aufnehmen –HTTP Statuskodes an Browser senden –Server anweisen, ein vorhandenes Dokument zu senden

19 Seminar Internet-Technologien Thema: CGI / Michael Gründler 19 Erzeugung von HTML- Dokumenten CGI Programm schreibt Ausgabe auf Standard-Ausgabe Server leitet alles von Standard Ausgabe zum Client (Browser) Beispiel in Perl –#!/usr/local/bin/perl –print "CONTENT_TYPE: text/html", "\n\n"; –print" ","\n; –print" Erstes Mal ", "\n"; –print"... ","\n"; –print" ", "\n"; –exit(0)

20 Seminar Internet-Technologien Thema: CGI / Michael Gründler 20 Header Header, damit Client mit Dokument umgehen kann Header in beliebiger Reihenfolge Wichtig: Header mit Leerzeile abschließen! Vollständige und unvollständige Header WWW-Server vervollständigt Header Wenn CGI einen vollständigen Header erstellt, dann präfix nph (Non Parsed Header) vor CGI-Programm, sendet direkt zum Client –Vorsicht: Server kann Header nicht mehr korrigieren!

21 Seminar Internet-Technologien Thema: CGI / Michael Gründler 21 Header

22 Seminar Internet-Technologien Thema: CGI / Michael Gründler 22 Versteckte Felder und Cookies Komplexe Dialoge mit mehreren Formularen erfordert Speicherung von Informationen unterschiedliche Strategien –versteckte Felder: Informationen werden transparent für Benutzer im Formular gespeichert, - Formulare werden immer länger –Persistent Cookies Datei auf Client-Seite, Anzahl und Größe ist beschränkt

23 Seminar Internet-Technologien Thema: CGI / Michael Gründler 23 Sicherheitsaspekte Niemals Benutzereingaben ungeprüft auf Betriebssystemebene senden –print ´$QUERY_STRING´; –rm -fr / CGI-Programme laufen meist unter root Rechte, da Ports unter 1024 root-Rechte benötigen. –Besser "Wrapper" benutzen. Durch Wrapper können Server und Programme mit beliebiger Kennung mit eingeschränkten Rechten betrieben werden Keine Passwortabfrage möglich, als Tag enthalten, aber unverschlüsselte Übertragung

24 Seminar Internet-Technologien Thema: CGI / Michael Gründler 24 Abschließende Bemerkungen Kommerzielle Anbieter: –ISAPI von Microsoft –NSAPI von Netscape –FastCGI, baut auf CGI auf –Datenbankanbindung über erweiterte HTML- Sprachen (SELECT,...) –Client-seitige Vorverarbeitung von Eingabedaten durch Java-Script

25 Seminar Internet-Technologien Thema: CGI / Michael Gründler 25 Literatur, Quellen CGI Programmierung im World Wide Web von Shishir Gundavaram, O´Reilly International Thomson Verlag Offizielle CGI Spezifikation: –http://hoohoo.ncsa.uiuc.edu/cgi/interface.html SelfHTML 6.1 HTML Dateien selbst erstellen von Stefan Münz unter beliebiger Suchmaschine Suchstring "CGI" oder CGI-Programmierung" eingeben.


Herunterladen ppt "Seminar Internet-Technologien Thema: CGI / Michael Gründler 1 Seminar Internet Technologien SS 98 Vortrag: Common Gateway Interface gehalten von: Michael."

Ähnliche Präsentationen


Google-Anzeigen