Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige ...
-
Upload
hertha-dressler -
Category
Documents
-
view
218 -
download
0
Transcript of Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige ...
InteraktionInteraktionJens Harnisch, Timo HarmJens Harnisch, Timo Harm
TIT05BGRTIT05BGR
04/26/2304/26/23 InteraktionInteraktion 22 / 27 / 27
ÜbersichtÜbersicht Serverseitige WWW-ProgrammierungServerseitige WWW-Programmierung
• Scriptsprachen zur WWW-Programmierung Scriptsprachen zur WWW-Programmierung
Common Gateway Interface - CGICommon Gateway Interface - CGI • Grundlegende Konzepte Grundlegende Konzepte • Get / Post Get / Post • Umgebungsvariablen des HTTP-Servers Umgebungsvariablen des HTTP-Servers • Standard-Eingabe eines CGI-Skripts Standard-Eingabe eines CGI-Skripts • Kommandozeilen-Eingaben an ein CGI-Skript Kommandozeilen-Eingaben an ein CGI-Skript • Standard-Ausgabe eines CGI-Skripts Standard-Ausgabe eines CGI-Skripts
04/26/2304/26/23 InteraktionInteraktion 33 / 27 / 27
Serverseitige ScriptsprachenServerseitige Scriptsprachen Anwendungsprogramm wird vom Browser (Client) über Anwendungsprogramm wird vom Browser (Client) über
den Server auf dem Serverrechner aktiviert und dort den Server auf dem Serverrechner aktiviert und dort ausgeführtausgeführt
Verarbeitungsergebnisse werden als dynamisch Verarbeitungsergebnisse werden als dynamisch generiertes HTML-Dokument an den Client zurück generiertes HTML-Dokument an den Client zurück gegebengegeben Standardschnittstelle : CGI-InterfaceStandardschnittstelle : CGI-Interface
Anwendungsprogramme auf Serverseite können in Anwendungsprogramme auf Serverseite können in beliebiger Programmiersprache erstellt werdenbeliebiger Programmiersprache erstellt werden
04/26/2304/26/23 InteraktionInteraktion 44 / 27 / 27
Perl / PHPPerl / PHPPerlPerl
umfangreiche Scriptsprache, eingesetzt in diversen umfangreiche Scriptsprache, eingesetzt in diversen Bereichen: z.B. Biotechnologie, Finanz-Software, Bereichen: z.B. Biotechnologie, Finanz-Software, Betriebssystem-Administration und eben Web-Betriebssystem-Administration und eben Web-Entwicklung. Entwicklung.
CGI-Interfaces in 90% aller Fälle in Perl programmiertCGI-Interfaces in 90% aller Fälle in Perl programmiert
PHPPHP
Newcomer: angetreten, um speziell die Bedürfnisse von Newcomer: angetreten, um speziell die Bedürfnisse von Web-Programmierern zu befriedigenWeb-Programmierern zu befriedigen
04/26/2304/26/23 InteraktionInteraktion 55 / 27 / 27
Perl oder PHP???Perl oder PHP??? persönliche Vorliebe entscheidendpersönliche Vorliebe entscheidend kaum prinzipielle Unterschiede zwischen der Syntax kaum prinzipielle Unterschiede zwischen der Syntax
bzw. Grammatik beider Sprachenbzw. Grammatik beider Sprachen
PerlPerl PHPPHPPerl mit sofort anwendbarenPerl mit sofort anwendbaren ModulenModulengutes Datenbankmodulgutes Datenbankmodul
Einfachheit von PHP Einfachheit von PHP viele Funktionen sind direkt in denviele Funktionen sind direkt in den PHP-Kern integriertPHP-Kern integriert
übersichtlicher als Perl-Scriptsübersichtlicher als Perl-Scripts
PHP direkt in HTML-CodePHP direkt in HTML-Code einbindbareinbindbar
04/26/2304/26/23 InteraktionInteraktion 66 / 27 / 27
ASPASP
stammt von Microsoft stammt von Microsoft auf Windows-Einsatz auf Windows-Einsatz beschränkt. beschränkt.
Besonderheit: Besonderheit: ASP ist keine Programmiersprache,ASP ist keine Programmiersprache,sondern eine “Programmierumgebung“sondern eine “Programmierumgebung“
JScript und VBScript um ASP-Anwendungen zu realisieren. JScript und VBScript um ASP-Anwendungen zu realisieren.
Ab ASP.NET auch mit Visual Basic, C++ und C# realisierbarAb ASP.NET auch mit Visual Basic, C++ und C# realisierbar
04/26/2304/26/23 InteraktionInteraktion 77 / 27 / 27
Python/TclPython/Tcl
eignen sich auch für Web-Scriptingeignen sich auch für Web-Scripting• jedoch nicht so ausgereiftjedoch nicht so ausgereift
Objektorientierte SprachenObjektorientierte Sprachen
PythonPython ErweiterbarkeitErweiterbarkeit
TclTcl einfache Syntaxeinfache Syntax
04/26/2304/26/23 InteraktionInteraktion 88 / 27 / 27
Common Gateway Interface - CGICommon Gateway Interface - CGI
Protokoll, welches einem Webserver Protokoll, welches einem Webserver gestattet, Daten eines Browser-Requests gestattet, Daten eines Browser-Requests an ein externes Programm weiterzugebenan ein externes Programm weiterzugeben
04/26/2304/26/23 InteraktionInteraktion 99 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGI
HTML-Dokumente können statisch, d.h. bereits HTML-Dokumente können statisch, d.h. bereits vorgefertigt und auf Abruf am Server vorgefertigt und auf Abruf am Server abgespeichert vorliegen oder dynamisch erzeugt abgespeichert vorliegen oder dynamisch erzeugt werdenwerden
vom Browser angefragte HTML-Dokument wird vom Browser angefragte HTML-Dokument wird erst auf Anfrage hin erzeugt.erst auf Anfrage hin erzeugt.
z.B. z.B. Warenkataloge (amazon.de)Warenkataloge (amazon.de)Suchmaschinen (google.de)Suchmaschinen (google.de)Zeitungen (heise.de)Zeitungen (heise.de)
04/26/2304/26/23 InteraktionInteraktion 1010 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIStatisches HTMLStatisches HTML
04/26/2304/26/23 InteraktionInteraktion 1111 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIDynamisches HTMLDynamisches HTML
04/26/2304/26/23 InteraktionInteraktion 1212 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIDynamisches HTMLDynamisches HTML
WWW-Server bietet Standard-Schnittstelle für WWW-Server bietet Standard-Schnittstelle für serverseitige Programme, mit deren Hilfe das serverseitige Programme, mit deren Hilfe das dynamische HTML-Dokument erzeugt wirddynamische HTML-Dokument erzeugt wird
zur Steuerung der Anwendungsprogramme auf dem zur Steuerung der Anwendungsprogramme auf dem WWW-Server müssen Parameter übergeben werden WWW-Server müssen Parameter übergeben werden könnenkönnen
04/26/2304/26/23 InteraktionInteraktion 1313 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIDynamisches HTMLDynamisches HTML
Bsp.: Ausfüllen und Abschicken eines HTML-FormularsBsp.: Ausfüllen und Abschicken eines HTML-Formulars
04/26/2304/26/23 InteraktionInteraktion 1414 / 27 / 27
Methode “Get“Methode “Get“ Daten des ausgefüllten Formulars werden Daten des ausgefüllten Formulars werden
an die URL-Angabe angehängt an die URL-Angabe angehängt ((URL-EncodingURL-Encoding) )
Server schreibt Daten in QUERY_STRINGServer schreibt Daten in QUERY_STRING CGI-Programm muß Inhalt der CGI-Programm muß Inhalt der
Umgebungsvariablen auslesen und Umgebungsvariablen auslesen und verarbeiten. verarbeiten.
04/26/2304/26/23 InteraktionInteraktion 1515 / 27 / 27
Methode “Get“Methode “Get“
04/26/2304/26/23 InteraktionInteraktion 1616 / 27 / 27
Methode “POST“Methode “POST“ Daten des ausgefüllten Formulars werden als eigenständiger Daten des ausgefüllten Formulars werden als eigenständiger
Datenstrom an den Server-Rechner gesandt.Datenstrom an den Server-Rechner gesandt. Server stellt Daten dem CGI-Programm über Standardeingabe Server stellt Daten dem CGI-Programm über Standardeingabe
"stdin" bereit"stdin" bereit
Skript muß die Daten wie eine Benutzereingabe behandeln, die auf Skript muß die Daten wie eine Benutzereingabe behandeln, die auf der Kommandozeile gemacht wurde.der Kommandozeile gemacht wurde.
kein EndOfFile-Signal (EOF) gesendet kein EndOfFile-Signal (EOF) gesendet
Auslesen der CONTENT_LENGTH Variable,Auslesen der CONTENT_LENGTH Variable, um die Länge der übermittelten Daten und damitum die Länge der übermittelten Daten und damit deren Ende zu ermitteln. deren Ende zu ermitteln.
04/26/2304/26/23 InteraktionInteraktion 1717 / 27 / 27
Methode “POST“Methode “POST“
04/26/2304/26/23 InteraktionInteraktion 1818 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIMethoden GET und POST im HTML-FormularMethoden GET und POST im HTML-Formular
Informationssammlung über Nutzer und Daten via Informationssammlung über Nutzer und Daten via UmgebungsvariablenUmgebungsvariablen
GETGET PostPostDaten werden inDaten werden in Server leitet Daten direkt anServer leitet Daten direkt an
- QUERY_STRING- QUERY_STRING Standardeingabe des Standardeingabe des
- CONTENT_TYPE- CONTENT_TYPE CGI – Programms weiterCGI – Programms weiter
- CONTENT_LENGTH- CONTENT_LENGTH
geschrieben.geschrieben.
04/26/2304/26/23 InteraktionInteraktion 1919 / 27 / 27
Common Gateway Interface – CGICommon Gateway Interface – CGIZusammenfassung der Methoden GET und POSTZusammenfassung der Methoden GET und POST
GETGET PostPost Formulareingaben werden anFormulareingaben werden an den im action-Attributden im action-Attribut angegebenen angegebenen URL URL hinter einemhinter einem „ „??“ “ angehängtangehängt..
HTTP-Server übergibt dem CGI-HTTP-Server übergibt dem CGI- Programm die übergebenenProgramm die übergebenen Formulardaten in der Formulardaten in der Umgebungsvariablen Umgebungsvariablen QUERY_STRINGQUERY_STRING..
Initiierung eines direktenInitiierung eines direkten HTTP- HTTP- Requests Requests an den im action-an den im action- Attribut angegebenen URLAttribut angegebenen URL
Formulardatenübergabe Formulardatenübergabe in in Body Body des HTTP-Requestsdes HTTP-Requests
Body des HTTP-Requests wirdBody des HTTP-Requests wird dem CGI-Programm über diedem CGI-Programm über die Standardeingabe Standardeingabe zur Verfügungzur Verfügung gestellt.gestellt.
04/26/2304/26/23 InteraktionInteraktion 2020 / 27 / 27
StandardausgabeStandardausgabe
04/26/2304/26/23 InteraktionInteraktion 2121 / 27 / 27
BeispielBeispielWEB / DB Anbindung über CGIWEB / DB Anbindung über CGI
04/26/2304/26/23 InteraktionInteraktion 2222 / 27 / 27
UmgebungsvariablenUmgebungsvariablen CGI-Script wird auf Server ausgeführt CGI-Script wird auf Server ausgeführt
CGI-Umgebung stellt Informationen über die CGI-Umgebung stellt Informationen über die Umgebung bereit (Umgebung bereit ( Umgebungsvariablen) Umgebungsvariablen)
Je nach Betriebssystem, Server- und Client-Je nach Betriebssystem, Server- und Client-Software können die Umgebungsvariablen Software können die Umgebungsvariablen variierenvariieren
04/26/2304/26/23 InteraktionInteraktion 2323 / 27 / 27
Umgebungsvariablen – Ausgabe 1Umgebungsvariablen – Ausgabe 1
#!/usr/bin/perl#!/usr/bin/perl
print "Content-type:text/html\n\n"; print "Content-type:text/html\n\n"; foreach (keys(%ENV)) foreach (keys(%ENV))
{ { print "Der Schlüssel ist $_ und der Wert print "Der Schlüssel ist $_ und der Wert ist $ENV{$_}"; ist $ENV{$_}"; } }
Aufruf:Aufruf: http://127.0.0.1/cgi-bin/name_des_skriptes.plhttp://127.0.0.1/cgi-bin/name_des_skriptes.pl. .
04/26/2304/26/23 InteraktionInteraktion 2424 / 27 / 27
Umgebungsvariablen – Ausgabe 2Umgebungsvariablen – Ausgabe 2
#!/usr/bin/perl #!/usr/bin/perl print "Content-type:text/html\n\n"; print "Content-type:text/html\n\n";
print "$ENV{DOCUMENT_ROOT} \n"; print "$ENV{DOCUMENT_ROOT} \n"; print "$ENV{REMOTE_ADRESS} \n"; print "$ENV{REMOTE_ADRESS} \n"; print "$ENV{QUERY_STRING} \n";print "$ENV{QUERY_STRING} \n";
Aufruf:Aufruf: http://127.0.0.1/cgi-bin/name_des_skriptes.plhttp://127.0.0.1/cgi-bin/name_des_skriptes.pl. .
04/26/2304/26/23 InteraktionInteraktion 2525 / 27 / 27
Umgebungsvariablen - AusgabeUmgebungsvariablen - Ausgabe QUERY_STRING:QUERY_STRING: leer, da keine Userangabenleer, da keine Userangaben
übermittelt wurdenübermittelt wurden
DOCUMENT_ROOT:DOCUMENT_ROOT: Root Verzeichnis des HTTPRoot Verzeichnis des HTTPServers Servers z.B.: bei Apache z.B.: bei Apache
c:/apache/htdocs. c:/apache/htdocs.
REQUEST_METHOD:REQUEST_METHOD: Übertragungsmethode derÜbertragungsmethode der Formulareingaben (get/Post)Formulareingaben (get/Post)
REMOTE_ADRESS:REMOTE_ADRESS: zeigt IP des aufrufenden Rechners. zeigt IP des aufrufenden Rechners.
CONTENT_LENGTH:CONTENT_LENGTH: Länge des QUERY_STRINGS Länge des QUERY_STRINGS
HTTP_USER_AGENT:HTTP_USER_AGENT: gibt den Browsertyp an. gibt den Browsertyp an.
04/26/2304/26/23 InteraktionInteraktion 2626 / 27 / 27
CGI - VorteileCGI - Vorteile Webdokumente werden dynamisch zur Anfangszeit Webdokumente werden dynamisch zur Anfangszeit
erstellterstellt
CGI - Programmierung stellt eine schnelle und flexible CGI - Programmierung stellt eine schnelle und flexible Möglichkeit zur Web/DB AnbindungMöglichkeit zur Web/DB Anbindung
Unabhängigkeit von der eingesetzten Unabhängigkeit von der eingesetzten ProgrammierspracheProgrammiersprache
Möglichkeit der Verwendung beliebiger Web-Servers / Möglichkeit der Verwendung beliebiger Web-Servers / Datenbanken Datenbanken
04/26/2304/26/23 InteraktionInteraktion 2727 / 27 / 27
QuellenQuellen www.aboutwebdesign.de/awd/content/1002215672.shtml www.infos24.de/perle/handbuch/4_umgebungsvariablen.htm “Architektur von Webinformationssystemen“
- Gerti Kappel, Werner Retschitzegger, Birgit Pröll, Rainer Unland, Bahram Vojdani