interaktion jens harnisch, timo harm tit05bgr. 25.06.2015interaktion2 / 27 Übersicht serverseitige ...

27
Interaktion Interaktion Jens Harnisch, Timo Harm Jens Harnisch, Timo Harm TIT05BGR TIT05BGR

Upload: hertha-dressler

Post on 06-Apr-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

InteraktionInteraktionJens Harnisch, Timo HarmJens Harnisch, Timo Harm

TIT05BGRTIT05BGR

Page 2: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 3: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 4: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 5: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 6: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 7: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 8: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 9: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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)

Page 10: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 1010 / 27 / 27

Common Gateway Interface – CGICommon Gateway Interface – CGIStatisches HTMLStatisches HTML

Page 11: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 1111 / 27 / 27

Common Gateway Interface – CGICommon Gateway Interface – CGIDynamisches HTMLDynamisches HTML

Page 12: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 13: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 14: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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.

Page 15: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 1515 / 27 / 27

Methode “Get“Methode “Get“

Page 16: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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.

Page 17: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 1717 / 27 / 27

Methode “POST“Methode “POST“

Page 18: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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.

Page 19: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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.

Page 20: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 2020 / 27 / 27

StandardausgabeStandardausgabe

Page 21: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

04/26/2304/26/23 InteraktionInteraktion 2121 / 27 / 27

BeispielBeispielWEB / DB Anbindung über CGIWEB / DB Anbindung über CGI

Page 22: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 23: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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. .

Page 24: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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. .

Page 25: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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.

Page 26: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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

Page 27: Interaktion Jens Harnisch, Timo Harm TIT05BGR. 25.06.2015Interaktion2 / 27 Übersicht Serverseitige  Serverseitige

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