Vs9.6 1 9.6 Das World-Wide Web ist ursprüglich keine Middleware, sondern ein Internet-Dienst zur Beschaffung von Dokumenten (downloading) aus entfernten.

Slides:



Advertisements
Ähnliche Präsentationen
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Advertisements

HS-Projekt Friedrich Junge-Schule, Kl. 9c, 2011 Wie funktionieren Internet-Server? Web-Server auf eigener Domain und Game-Server für Internet-Spiele Teilnehmer:
Dominic Ziegler 12c Webprogrammierung.
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
HTTP – Hypertext Transfer Protocol
Basis-Architekturen für Web-Anwendungen
Kurze Einführung in ASP
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Vs Das World-Wide Web ist ursprüglich keine Middleware, sondern ein Internet-Dienst zur Beschaffung von Dokumenten (downloading) aus entfernten.
WWW Applikationen Vorlesung Anwendungssysteme. Lernziele: Wie funktioniert das WWW technisch? Welche Basis-Interaktionsmöglichkeiten bietet das WWW? Wie.
Tomcat Web-Server installieren
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
HTML - Einführung Richard Göbel.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
HTML - Eine erste Annäherung
Geschichte und Funktion des Internets.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Seminar Internet Technologien
DVG Einführung in Java1 Einführung in JAVA.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Einführung Servlets/JSPs
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Applets Java für’s Web.
Client-Server Modell Advanced IT Basics Nicolas Frings.
Seminar Internet - Technologie
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Client-Server Systeme
Grundlagen: Client-Server-Modell
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
CGI (Common Gateway Interface)
Oliver Spritzendorfer Thomas Fekete
Datenanbindung in Webapplikationen
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Web 2.0 & AJAX (A)sysnchrones (J)avaScript (A)nd (X)ML
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
HTTP IT-Zertifikat Universität zu Köln Allgemeine Technologien II
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Client-Server-Modell
SharePoint 2013 Web Services
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
Willkommen zum Brückensemester
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Das World Wide Web Stephan Becker TIT05BGR SS06. Das World Wide Web Übersicht Hypertext & Hypermedia HTML Dokumentenidentifikation Dokumententransport.
Internet - Grundbegriffe Unterlagen zum Kurs "Wie erstelle ich eine Homepage?"
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Webbasierte Kommunikation am Beispiel REST Seminarvortrag von Heiko Overath.
© WZL/Fraunhofer IPT Eine Gegenüberstellung von Websockets und RESTful Web Services Seminarvortrag von Lucie Mades.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
Vs3 1 3 Netzdienste im Internet. vs3 2 Netzdienste = über Ports ansprechbare Dienste, die hauptsächlich (aber nicht nur) für die Fernnutzung gedacht sind.
HTTP Wie funktioniert das WWW ?. © Architektur Wie funktioniert das eigentlich ? Darstellung: HTML Abwicklung: HTTP Browser Webserver.
WEB-Entwickler 2016.
Prof. Dr.-Ing. Franz-Josef Behr Geodaten und Datenmodell
Systeme II 6. Die Anwendungsschicht
AURIS-MM Spezifikation
 Präsentation transkript:

vs Das World-Wide Web ist ursprüglich keine Middleware, sondern ein Internet-Dienst zur Beschaffung von Dokumenten (downloading) aus entfernten Dateien, ähnlich FTP (3.1  ),3.1 realisiert durch Web Servers auf Port 80. Aber: spezielle Dokumente: Hypertext in HTML (daher „Web“), einfache Interaktion: HTTP – Hypertext Transfer Protocol dazu:  serverseitig ausführbare Dokumenteninhalte  ad-hoc erzeugte Dokumente  klientenseitig ausführbare Dokumenteninhalte und:  Web-Dienste (Web Services)  Middleware-Charakter

vs9.6 2 Historie: 1960 Hypertext 1970Arpanet TCP/IP, FTP 1980Internet 1990Konzept des WWW: Berners-Lee (CERN) Mosaic Browser (1994 …) W3C, StandardisierungW3C 2000 REST, Web-Dienste

vs REST Representational State Transfer "what the web got right and why it works" Architekturstil und Prinzipien des WWW, informell in HTTP 1.1, beschrieben von Roy Fielding Eigenschaften des WWW: Skalierbarkeit:extrem hoher Verteilungsgrad (weltweit) Heterogenität:sehr unterschiedliche Informationen (Bilder, Texte,...) und Informationsquellen (Dateien, Datenbanken,...) Kernideen von REST:  Zustandslose Klient/Server-Architektur mit Zwischenstationen  Repräsentationen von Ressourcen (resource representations) Einheitliche Schnittstelle (uniform interface)

vs9.6 4 client origin server ORB gateway (für Server/Netz erforderlich)   Architektur-Komponenten $ $$ $ $ = mit caching proxy (von client ausgewählt)

vs9.6 5  Repräsentation von Ressourcen Ressource (resource) Dokument, Dienst, Konzept,... oft mit eingebetteten Ressourcen, z.B. Web-Seite mit Bildern Benennung (meist dezentral) mittels uniform resource... URIidentifier – identifiziert lediglich eine Ressource URLlocator – gibt Addresse für Interaktion an URNname – identifiziert Ressource nach externem Schema, erfordert Auflösung (resolver) zur Interaktion Interaktion erfolgt mit Repräsentation des Zustands einer Ressource - Aushandlung gewünschter Repräsentation (content negotiation) - Verzicht auf kanonische Darstellung - Konvertierung bei Zwischenkomponenten möglich

vs9.6 6 Einheitliche Schnittstelle ● Einheitliche (minimale) Schnittstelle bei allen Komponenten der REST-Architektur ● Interaktion mit Ressourcen nur über einige wenige universelle Operationen (ähnliche Idee in UNIX pipeline) ● Typische Operationen: GET Beschaffung einer Repräsentation POST Modifikation einer Repräsentation PUT Erstellung einer Repräsentation DELETE Löschung einer Repräsentation......

vs9.6 7 ● Semantik von Operationen ist einheitlich für alle Ressourcen ● Interaktion trägt alle benötigten Informationen, ist damit zustandslos (aber siehe Cookies  ) ● Ressource selbst kann dabei sehr wohl zustandsbehaftet sein!

vs9.6 8 Browser - hat folgende Aufgaben:  Beschaffung einer Repräsentation einer mittels URL identifizierten Ressource  Darstellung /Aktivierung dieser Repräsentation ... diverser Benutzer-Komfort Die Beschaffung der Repräsentationen von eingebetteten Ressourcen erfolgt überlappend mit der Darstellung bereits beschaffter Ressource-Repräsentationen – jeweils über eine eigene TCP-Verbindung. Typischer Client

vs HTTP – Hypertext Transfer Protocol FrageAntwort Operationszeile (Request Line)Statuszeile (Status Line) Kopfsätze (Headers)KopfsätzeCRLF Daten (Entity Body)Daten (meist HTML) „Operationszeile“ und „Statuszeile“ sind obligatorisch „Kopfsätze“ (wahlweise) umfassen - General Header - Request/Response Headers - Entity Headers Protokoll für einfache Frage(request)/Antwort(response)-Interaktion über TCP-Verbindung, zustandslos zwischen den Interaktionen

vs HTTP Request erteilt einem Web Server einen bestimmten Auftrag, z.B. „Liefere das Dokument mit dem Namen xy!“ Dokument = Ressource, Repräsentation laut Anfrage-Parametern Vorgesehene Auftragsarten/Operationen (methods) entsprechen REST-Operationen: # GET, HEAD, POST, PUT, DELETE,... Operationszeile enthält- Dokumentenname (= vom Web Server interpretierter Dateiname) - eventuell weitere Daten zur Verarbeitung bei POST etc. - Protokollname/Versionsnummer

vs GET sucht angegebenes Dokument und überträgt es als Bestandteil einer Antwort z.B. GET /welcome.html HTTP/1.0 Request Line Date:..... General Header From: Request Headers Accept: text/html,text/*;q=0.5 (Content Negotiation) User-Agent: Mozilla/4.03 CRLF (keine Entity Headers, keine Daten)

vs POST übermittelt Daten zwecks Verarbeitung beim Server und veranlasst Übertragung der Ergebnisse (Repräsentation der Ressource im neuen Zustand) als Bestandteil der Antwort z.B. POST /dbsearch.cgi HTTP/1.1 Host: Request Header* Content-Length: 26 Entity Header CRLF db=movies&query=casablanca Daten (* obligatorisch seit HTTP/1.1) Ähnlicher Effekt kann auch durch Parametrisierung erreicht werden GET /dbsearch.cgi?db=movies&query=casablanca HTTP/1.1

vs HTTP Response Statuszeile enthält- Protokollname/Versionsnummer - Fehlercode (genauer: response code) - Fehlerbeschreibung Fehlercodes sind eingeteilt in Fehlerklassen (response classes): 1xx informational 2xx success, z.B. 200 OK 3xx redirection, z.B. 301 Moved Permanently 4xx client error,z.B. 404 Not Found 5xx server error,z.B. 500 Internal Server Error Beispiel: HTTP/ OK Date:... Server: Apache... Content-Length: HTML-Text...

vs Cookies Web Server ist prinzipiell zustandslos: wenn eine Interaktion abgeschlossen ist, ist sie „vergessen“ Sitzung (session) mit mehreren zusammengehörigen Interaktionen ist wünschenswert (Typisches Beispiel: virtueller Einkaufskorb) Cookies (= „Kekse“) sind Hilfstechnik zur Simulation eines Sitzungs-Konzepts Cookie = Sitzungs-Identifikator

vs GET /dbsearch.cgi HTTP/ HTTP/ OK Server merkt sich generiertes c1=4711 Set-Cookie: c1=4711 und sendet es an den Klienten... Klient merkt sich empfangenes c1=4711 GET /dbsearch.cgi HTTP/1.0 Cookie: c1=4711 Klient sendet gemerktes c1= Server erkennt c1=4711, d.h. Zusammenhang mit vorangegangenem GET HTTP/ OK...

vs HTML – Hypertext Markup Language dient zur textuellen Beschreibung von Inhalt und Darstellung eines Hypertext-Dokuments, enthält Klartext, Marken (tags) der Form und Marken dienen - der Textgestaltung, - der GUI-Gestaltung, - dem Verweis auf eingebettete Ressourcen, - dem Verweis auf fremde Ressourcen (links). Die Syntax von HTML ist beschreibbar mit Metasprache SGML –Standard Generalized Markup Language; Neuere Versionen basieren stattdessen auf XML - eXtensible Markup Language

vs Beispiel:( manche Marken haben Attribute ) Text im Titelbalken des Fensters fetter Überschrifttext (headline) normaler Fließtext, automatisch umgebrochen, wobei dies kursiv (italics) wird und hier ein Zeilenwechsel (break) eingeschoben wird - und hier ein Bild (eingebettete lokale Ressource!):

vs Verweise auf fremde Ressourcen (links), angezeigt mit geeigneter Hervorhebung des eingeschlossenen Textes: HTTP (see disclaimer) verweist auf bestimmte Stelle in Dokument: Disclaimer: Verweise auch auf Ressourcen anderer Art möglich: to Löhr Rahmen (frames) bleiben bei lokalem Wechsel des gerahmten Inhalts erhalten:

vs Eingebettete Programme Zweck:Interaktive Dokumente Voraussetzung: Code kann beim Klienten ausgeführt werden – z.B. vom Browser interpretiert werden. Beispiele: Skript-Sprachen, Java Applets, ActiveX Controls,... vordefiniertes Objekt: Browser-Fenster Skript-Sprachen, z.B. Perl, VBScript, JavaScript,... : Code wird in Dokument eingebettet, z.B. document.write("Hello world!")

vs Java Applets:übersetzte Java-Programme, Wurzelklasse erbt von Applet, werden von Klassenlader übers Netz nachgeladen <applet codebase=" code="HelloWorld.class" alt="Loading failed...„ width=500 height=500> This browser is ignorant of applets! import java.awt.*; // file HelloWorld.java import java.applet.*; public class HelloApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello world!",25,50); } } vom Browser übergebenes Objekt: Applet-Bereich

vs ActiveX Controls: COM-Objekte (d.h. Binärcode) für MS Windows, dynamisch nachgeladen und installiert <object classid=" CLSID, identifiziert.ocx-Datei " codebase=" URL "... >...

vs CGI - Common Gateway Interface erlaubt Bereitstellung von serverseitigen Programmen (häufig in Skript-Sprachen geschrieben), die Webseiten dynamisch erzeugen, Eingaben des Benutzers beim Server verarbeiten. Typische Anwendungen: - Datenbankanfragen - Anmelden, Kaufen,... Web Server fungiert als Prozesserzeuger: wenn statt.html-Dokument eine.cgi-Ressource angefordert wird, wird Prozeß erzeugt, der das dort vorliegende Programm ausführt und über den Web Server mit dem Browser kommuniziert.

vs httpd prog.cg i Browser http pipe server machineclient machines  Kontaktaufnahme des Browsers:    CGI-Prozeß hat Umgebungsvariable QUERY_STRING=hello  Typische erste Aktion des CGI-Prozesses: HTML-Seite – z.B. mit Formular – zurückschicken (über stdout ): Content-type: text/html MIME type

vs <form action=" method=GET> HTML-Text mit Formularmarken (form tags) </html Eine Formularmarke veranlasst die Darstellung eines GUI-Elements, das auf Benutzer-Aktionen reagiert. Formular ausfüllen und eingetragene Daten abschicken  (neuer!) CGI-Prozeß verarbeitet empfangene Daten

vs Formularmarke unterstützt u.a. folgende GUI-Elemente: einzeiliges Textfeld: <input type="text" name="Von" value="Englisch" size="10" maxlength="30" > Textfeld für Paßwort-Eingabe: runde Auswahltaste (radio button): versteckte Zustands-Informationen (nicht angezeigt!):... und viele weitere

vs Abschicken der eingetragenen Daten mit Submit-Taste: Tastendruck löst GET/POST aus, wie am Formularanfang angegeben. Dabei werden die zuvor gemachten Eingaben als (name,value)-Paare übermittelt, also z.B. mit GET.../prog.cgi?Von=Polnisch&US+oder+UK=UK&...  CGI-Prozeß findet in der Umgebungsvariablen QUERY_STRING die Zeichenkette Von=Polnisch&US+oder+UK=UK&...

vs Servlets Java Servlets ersetzen CGI:statt Erzeugung eines CGI-Prozesses Erzeugung eines Thread, der ein Servlet lädt und ausführt (implementiert javax.servlet.Servlet ) Typische URL eines Servlet: Servlet Engine im Web Server unterstützt Cookies und Sessions Funktionalität eines Servlet wird bestimmt durch Operation public void service(ServletRequest req, ServletResponse res) {..... }

vs Beispiel: public void service(ServletRequest req, ServletResponse res) { ServletOutputStream out = res.getOutputStream()); res.setContentType("text/html");..... out.println(" "); out.println( ); out.println(" "); String search = req.getQueryParameter("search"); if(search!=null) { // form submission !..... // complete answer form out.println(answerText); } out.println( ); out.println(" "); }

vs JSP und ASP Hässlich bei CGI und Servlets: Programm erzeugt explizit HTML-Code:... out.println(" ");... JSP - Java Server Pages: HTML-Text mit eingebettetem Java-Code – wird beim Server in Servlet-Text umgewandelt und dann als Servlet übersetzt und ausgeführt ASP - Active Server Pages (Dateien.asp ) JSP-Analogon von Microsoft für Skriptsprachen, vor allem VBScript, aber auch JScript u.a.

vs JSP: Anstelle von public class Datum implements Servlet { public void service(ServletRequest req, ServletResponse res) { ServletOutputStream out = res.getOutputStream()); res.setContentType("text/html"); out.println(" "); out.println("Datum: "); out.println((new java.util.Date()).toString()); out.println(" "); } } definiert man nur Datum:

vs ASP: Datum: wird im Web Server von Scripting Engine bearbeitet und in Dokument für Browser umgewandelt Beispiel mit Verarbeitung von Formulardaten:

vs ASP.NET ist Teil des.NET Framework Prinzipien:- Trennung von GUI-Beschreibung und Programm, ("code behind page") - graphische Erstellung von GUI wie bei lokalen GUIs, - Programmcode reagiert auf Ereignisse, - Microsoft-“Web-Eingabeelemente“ werden in HTML-Eingabeelemente umgesetzt z.B. Datei form.aspx Language="C#" Inherits="MyFormPage" Src="MyFormPage.aspx.cs" %>... <asp:Button ID="button1" Text="OK"... OnClick="processOK"/>... Klassenname Datei Operation