2. WWW-Protokolle und -Formate

Ähnliche Dokumente
HTTP. Arthur Zaczek. Aug 2015

Das Hypertext Transfer Protokoll HTTP/1.1

Hypertext Transfer Protocol

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Webtechnologien. Stunde 6 ( ) - HTTP - HTML - Servlets - AJAX. Verschoben haben wir - JSP (Java Server Pages) - JSF (Java Server Faces)

X12L 21. Oktober a) HTML - ein Dateiformat, welches maschinenlesbare Verweise (links) enthält,

Architektur von REST basierten Webservices

HTTP Hypertext Transfer Protocol

Internet-Technologien

15. Das Hypertext Transfer Protokoll HTTP - Überblick. 1. Requests und Responses. 2. Content Negotiation. 3. State Management (Cookies)

1. Ordnen Sie bei der angegebenen URI den einzelnen Teilen die entsprechenden Begriffe zu. [ ] fragment [ ] path [ ] scheme [ ] query [ ] authority

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

DIAMETER Base Protocol (RFC3588)

Web Grundlagen zum Spidering

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2016

PHP, Ajax und JavaScript

Netzwerke Teil 12: Hypertext Transfer Protokoll

!"# $ % Internet Protokolle: HTTP 1/38

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

HTML Scripting. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 06. Dezember 2017

Web-Konzepte für das Internet der Dinge Ein Überblick

PHP & HTML. Kurzeinstieg HTML. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge

a) Erklären Sie, was die folgenden Eigenschaften eines XML-Dokumentes aussagen? wohlgeformt gültig

Peter Sobe Internettechnologien. HTTP Protokoll (1) Hypertext Transport Protocol, größtenteils zum Austausch von Hypertext (HTML, xhtml) benutzt

Web-basierte Anwendungssysteme PHP Teil 2

Anbindung an WebServices Robert Zacherl

RESTful API Grundlagen mit PHP und Payrexx

Klausur: Internet-Technologien

JSP Usereingabe. Inhalt. 1 Zielsetzung. SEW(3.Jg) Unterlagen zu Java Server-Pages Teil 2

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Anwendungsprotokolle: HTTP, POP, SMTP

Einführung Internet Geschichte, Dienste, Intra /Extranet, Browser/Server, Website Upload. Dipl. Ing. Dr. Alexander Berzler

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Grundlagen Internet-Technologien INF3171

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

Grundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11

Erstellen von Web-Seiten HTML und mehr...

Medien und Webtechnologie

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

Python CGI-Skripte erstellen

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2017

2. Technische Grundlagen

PHP eine Einführung. Dipl.-Inf. Frank Hofmann. 18. November Potsdam

GRUDIS RB3 (Schnittstelle MapViewer)

Klausur im Modul: Softwaretechnik (SWT) - WEB

SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) Request. Response

Proseminar: Website-Management-Systeme

Anwendersoftware. Thema 7 Dialoggestaltung mit HTML-Formularen. Sommersemester Dr. Henry Herper

Schnittstellenbeschreibung

Grundlagen Internet-Technologien. Das Web, das unbekannte Wesen

Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171

Apache HTTP Server Administration

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Perl-Praxis. CGI-Skripte. Jörn Clausen

Ursprung des Internets und WWW

BUSINESSMAIL X.400 WEB SERVICE API MAILBOX STATUS V1.0

Integration von UIS-Webdiensten

Formulare mit HTML. Beispiele. Beispiele & Nutzen. Web. Fach: Klasse: BW2. Datum: (Freitag) Agenda zu HTML und PHP

Form und Darstellung von Informationen

Geschäftsprozesse Benutzerschnittstelle

Nutzung von REST Clients für Allyouneed Marktplatz

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

2. WWW-Protokolle und -Formate

BIW Wahlpflichtmodul. Einführung in Solr, Pipeline und REST. Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze)

11.1a: RPC (Remote Procedure Call)

MULTIPLEXING UND SERVER PUSH

VAADIN, SPRING BOOT & REST

Simple serial time and HTTP client API Version 00.75

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Gnutella 0.6. Vorstellung eines Filesharing-Protokolls. Wolfgang Steudel: Das Gnutella-Protokoll 2/15. Inhalt

Verfügbarkeitsabfrage

<form name= test action= test.php method= get autocomplete= on > </form> <form name= test action= test.php method= post autocomplete= on > </form>

Grundlagen Internet-Technologien INF3171

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E.

Die Krux mit dem Browser Probleme bei der Realisierung web-basierter Geschäftsanwendungen

aibrowser Ausgabe

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin

Nerdball Ein automatischer IRC Image Collector

e-bag Kurzanleitung e-bag Grundfunktionen

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1

Embedded Webserver in Forth

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

Fehlende Input-Filterung. Klaus Kusche

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Seminararbeit. Konzept einer Schnittstelle zur Benutzerverwaltung in RiskShield-Server. Christoph Laufs INFORM GmbH INFORM GmbH 1

APIC-EM Software Engineering Insight

Wie funktioniert das WWW? Sicher im WWW

REST Services To-Go Einfacher Einstieg in die REST Programmierung

Rechnernetze Übung 12

Benutzerhandbuch. Neukirchen

OOC4J Rotate Access-Logs und LogFormat

Transkript:

2. WWW-Protokolle und -Formate Inhalt: HTTP, allgemeiner syntaktischer Aufbau Wichtige Methoden des HTTP-Protokolls Aufbau von Web-Applikationen unter Nutzung von HTTP, HTML, DOM XML, XML-DTD und XML-Schema Darstellung von XML-Dokumenten mittels CSS Beispiele für XML-basierte Sprachen 1 HTTP (1) HTTP: Hypertext Transport Protocol Roy Fielding, Tim Berners-Lee ab 1989 Protokoll zum Transport von Web-Inhalten, insbes. HTML Seiten HTTP TCP IP Bestimmt, was angefragt wird und welche Daten zurückgesendet werden Erzeugt Verbindung zwischen Client und Server Ermöglicht Adressierung, Paket-Transfer Der syntaktische Aufbau der HTTP-Nachrichten wird hier durch die Erweiterte Backus-Naur-Form beschrieben. Diese Form beschreibt den Aufbau von Nachrichten durch Sequenz, Alternativen, optionalen Elementen, sich wiederholenden Elementen und entsprechende Schachtelungen. Elemente, die nicht weiter aufgelöst werden, sind s.g. Terminalsymbole, die durch Großschreibung, oder Angabe in Anführungszeichen gekennzeichnet werden. 2

Einschub: Erweiterte Backus Naur Form Sequenz: Hintereinanderschreiben der Elemente e3 e1 e2 Alternative: Hintereinander mit Trennstrich e3 e1 e2 Optionales Element in Sequenz: mit [ ] eingefasst e3 [ e1 ] e2 Wiederholung, ein- oder mehrfach: + Zeichen e4 ( e1 e2)+ e3 Optionale Wiederholung, kein-, ein- oder mehrfach: * Zeichen e4 ( e1 e2)*+ e3 Gruppierung: runde Klammern Beispiel e5 (( e1 e2) (e3 e4))+ Terminalsymbole: Hochkommaschreibweise, oder Großbuchstaben Beispiele (ohne tieferen Sinn) e1 0 1 2 e2 ZEILENUMBRUCH e3 LEERZEICHEN 3 HTTP (2) Eine HTTP- Nachricht ist immer wie folgt aufgebaut: generic-message start-line (message-header CRLF)* CRLF [ message-body ] start-line Request-Line Status-Line Die Nachricht beginnt immer mit einer Startzeile. Schickt der Nutzer eine Anforderung (Request), ist es eine Request-Zeile. Antwortet der Server ist es eine Status-Zeile. Danach können mehrere so genannte Nachrichten-Header kommen. Der Stern bedeutet optionale Wiederholung und schließt auch die Möglichkeit ein, dass keine Nachrichten-Header vorhanden sind. Das Terminalsymbol CLRF ist der Zeilenumbruch (Carriage Return Line Feed) 4

HTTP (3) Die Folge der Header muss durch ein CRLF-Zeichen abgeschlossen sein. Dann folgt unbedingt eine Leerzeile, repräsentiert durch ein einzelnstehendes CRLF. Danach kann optional Nachrichten-Körper (body) folgen. Aufbau einer Anforderung (Request) Diese beginnt mit der Anforderungszeile. Danach können im Header-Teil allgemeine Header, Anforderungs-Header oder Entity- Header vorhanden sein. Request Request-Line ( ( general-header request-header entity-header ) CRLF )* CRLF [ message-body ] 5 HTTP (4) Die Anforderungszeile (Request-Line) besteht aus drei Teilen, die durch Leerzeichen (SP) getrennt sind. Der erste Teil ist die Methode (z.b. GET), der zweite Teil die Anforderungs-URI (z.b. /beispiel.html), und der dritte Teil die HTTP-Version. Request-Line Method SP Request-URI SP HTTP-Version CRLF Method "OPTIONS" "GET" "HEAD" "POST" "PUT" "DELETE" "TRACE" "CONNECT" Request-URI "*" absoluteuri abs_path authority HTTP-Version "HTTP/1.0" "HTTP/1.1" Beispiele: GET /beispiel.html HTTP/1.0 OPTIONS * HTTP/1.0 6

HTTP (5) Der Stern "*" als Request-URI heißt, dass sich die Anforderung nicht auf eine bestimmte Ressource bezieht. Mit OPTIONS werden vom Server die unterstützten Methoden erfragt, ohne sich auf ein gespeichertes Dokument zu beziehen. Die GET-Methode dagegen fordert das Dokument beispiel.html an. Das /-Zeichen bezeichnet das Wurzelverzeichnis des Webservers. Die Angabe der Methode muss in Großbuchstaben erfolgen. In den vorangegangenen Beispielen ist weder ein Header- noch ein Body-Teil vorhanden, aber der Anforderungszeile muss unbedingt eine Leerzeile folgen. Aufbau einer Antwort (Response) Der Aufbau ist analog zur Anforderung. Nur ist die erste Zeile jetzt eine Status-Zeile und im Header-Teil stehen statt den Anforderungs-Headern die Antwort-Header. 7 HTTP (6) Aufbau einer Antwort (Response) Der Aufbau ist analog zur Anforderung. Nur ist die erste Zeile jetzt eine Status-Zeile und im Header-Teil stehen statt den Anforderungs-Headern die Antwort-Header. Response Status-Line ( ( general-header response-header entity-header ) CRLF )* CRLF [ message-body ] Die Status-Zeile (Status -Line) besteht aus drei Teilen, die durch Leerzeichen (SP) getrennt sind. Der erste Teil ist die unterstützte http-version, der zweite Teil enthält den Status-Code (z.b. 200), und der dritte Teil die Texterklärung zum Code (z.b. OK). Status-Line HTTP-Version SP Status-Code SP Reason-Phrase CRLF 8

HTTP (7) Das WWW-Konsortium hat im http-standard festgelegt, dass die drei Methoden OPTIONS, GET und HEAD auf jeden Fall durch einen Webserver zu unterstützen sind, aber auch künftige Erweiterungen der Methoden möglich sind. Typischerweise ist die Methode POST zur Übertragung von Eingabedaten (z.b aus HTML-Formularen) auf Webseiten zugelassen. Es sind auch einige Methoden, wie SEARCH, LOCK usw. vorhanden, die nicht im Standard aufgeführt sind. Im Standard enthalten, aber oft nicht implementiert oder abgeschaltet: PUT und DELETE 9 HTTP (8) GET- Methode Die GET-Methode ist die am häufigsten eingesetzte Methode bei einer Client-Anforderung. Damit wird ein Dokument beim Webserver zum Herunterladen angefordert. Der Name des Dokumentes und eventuell sein Pfad müssen in der Request-URI angegeben sein. Beispiel: GET /beispiel.html HTTP/1.0 Das /-Zeichen steht für die Wurzel des Publikationsverzeichnisses des Webservers. Im Wurzelverzeichnis wird die Datei beispiel.html angefordert. 10

HTTP (9) GET- Methode, Antwort: Nach der Leerzeile ist der Inhalt des body zu sehen, d.h. der Inhalt des angeforderten Dokumentes in HTML. Allgemeiner Header: Date Response-Header: Server, Accept-Ranges und ETag. Entity-Header: Content-Type, Content-Length und Last-Modified. Sie beziehen sich auf das gesendete Dokument. ETag enthält einen serverseitig eindeutigen Identifizierer für das Dokument. 11 HEAD- Methode HTTP (10) Die HEAD-Methode arbeitet fast identisch zur GET-Methode, nur dass das angeforderte Dokument vom Server nicht gesendet wird. Die Header werden wie bei GET in der Antwort gesetzt und erlauben damit eine Identifikation des Dokumentes. Beispiel: HEAD /xml1.xml HTTP/1.0. Ergebnis siehe Bild. Im Content-Type-Header ist text/xml angegeben. 12

HTTP (11) OPTIONS- und TRACE-Methoden Die OPTIONS-Methode dient zur Anzeige der durch den Webserver unterstützten Methoden. Beispiel: OPTIONS * HTTP/1.0. Die TRACE-Methode dient nur zur Feststellung, ob der Webserver arbeitet und ansprechbar ist. Seine Antwort ist das Zurücksenden der Anforderung im body. Es werden einige wichtige Header gesetzt. Das Bild unten zeigt die Server-Antwort auf die Anforderung Beispiel: TRACE / HTTP/1.0. 13 HTTP (12) POST-, PUT- und DELETE-Methoden POST-Methode - Übertragung von Datenpaketen vom Client zum Server. Hauptsächlich wird sie eingesetzt, wenn ein angefordertes HTML-Dokument Formularelemente für Nutzereingaben enthält. Die eingegebenen Daten werden dann an ein serverseitig vorhandenes Programm (Script) zur Weiterverarbeitung gesendet (serverseitiges Scripting). PUT-Methode - Übertragung von kompletten Dokumenten vom Client zum Server. Diese werden unter dem angegebenen Namen durch den Webserver im angegebenen Verzeichnis abgelegt. Es muss ein authentifizierter Zugriff erfolgen und Kennwort und Passwort mit übermittelt werden. Die hochzuladende Datei muss im body angeben werden. DELETE-Methode löscht die angegebene Datei aus dem Verzeichnis; authentifizierter Zugriff wird vorausgesetzt. 14

HTTP und Darstellung von XML-Dokumenten HTTP überträgt auch XML! Durch die XML-Unterstützung der Browser wird die XML- Datei so dargestellt, dass die Elementhierarchie des Dokumentes sichtbar wird. Siehe Bild rechts. Ist in die XML-Datei eine XSL-Datei eingebunden, wird diese auch ausgeführt, sodass man das transformierte Dokument sieht. Umwandlung auch über CSS möglich. 15 Web-Anwendungen unter Nutzung von HTTP Web-Browser Javascript Ajax-Engine HTTP, HTML- Dokumente XML Externe Skripte und Daten CGI Web- Server PHP 16