Netzprogrammierung: Hypertext Transfer Protocol HTTP

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Netzprogrammierung: Hypertext Transfer Protocol HTTP"

Transkript

1 Netzprogrammierung: Hypertext Transfer Protocol HTTP Robert Tolksdorf und Peter Löhr

2 Überblick WWW - HTTP - HTML Anfragen Datencodierung Antworten HTTPS Robert Tolksdorf und Peter Löhr 2

3 WWW - HTTP - HTML Robert Tolksdorf und Peter Löhr

4 WWW- HTTP - HTML World-Wide Web - WWW: populärer Internet-Dienst; auf Anforderung von Klient liefert Anbieter ein Dokument und führt evtl. gewisse weitere Aktionen aus. Hypertext Transfer Protocol - HTTP: Anwendungsprotokoll für das WWW, wird i.d.r. über TCP gefahren; Standard-Port ist 80. Hypertext Markup Language - HTML: Format der vom Anbieter gelieferten Dokumente, beschreibt Struktur und Erscheinungsbild von Dokumenten; WWW-Klient ist typischerweise ein Browser, der HTML-Text interpretiert und das Dokument entsprechend darstellt. Robert Tolksdorf und Peter Löhr 4

5 HTTP Frage/Antwort-Protokoll - kein längerer Dialog zustandslos : Frage/Antwort hinterläßt beim Anbieter keine Spur Klient/ Client Anfrage/Request Antwort/Response Anbieter/ Server Lebensdauer der TCP- Verbindung Robert Tolksdorf und Peter Löhr 5

6 HTTP Klient GET /lehre/ws08/alp5/index.html HTTP/1.0 Accept-Language: de-de Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh;... Accept: text/xml,application/xml,app HTTP/ OK Date: Fri, 05 Dec :47:51 GMT Server: Apache... <!DOCTYPE HTML PUBLIC "-//W3C//DTD...> <html> <head> <title>netzprogrammierung</title>... Anbieter Robert Tolksdorf und Peter Löhr 6

7 HTTP Einblick in diese Texte: $ tcpdump -i4 -Aqt -s300 (nur für Systemverwalter!)... GET /lehre/ws08/alp5/index.html HTTP/1.0 Accept-Language: de-de Accept-Encoding: gzip, deflate... HTTP/ OK Date: Fri, 05 Dec :47:51 GMT Server: Apache... ^C 444 packets captured 444 packets received by filter 0 packets dropped by kernel $ Robert Tolksdorf und Peter Löhr 7

8 HTTP Benutzung des Dienstes ohne Browser: $ nc 80 GET /lehre/ws08/alp5/index.html HTTP/1.0 Leerzeile! HTTP/ OK Date: Sat, 06 Dec :53:48 GMT Server: Apache... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>netzprogrammierung</title>... $ Robert Tolksdorf und Peter Löhr 8

9 HTTP 1.1 HTTP 1.1 erweitert Protokoll um Dialog-Möglichkeit Anfrage Client Antwort Anfrage Antwort Server Lebensdauer der TCP- Verbindung Anfrage Antwort Robert Tolksdorf und Peter Löhr 9

10 Aufbau Web Server Web Server wartet auf Verbindungen Beantwortet Nachfragen nach Dokumenten in seinem Verzeichnisbaum mit Dateien des verwendeten Dateisystems Port 80 / / Server Robert Tolksdorf und Peter Löhr 10

11 Anfragen Robert Tolksdorf und Peter Löhr

12 Aufbau Anfrage Anfrage besteht aus Startzeile Anfragebeschreibung durch Kopfzeilen Allgemeine Beschreibungen Anfragespezifische Beschreibungen Beschreibung eventuell beiliegenden Inhalts Leerzeile (!) Kopf (Eventueller Inhalt) Beispiel: GET /lehre/ws08/alp5/index.html HTTP/1.0 Accept-Language: de-de Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Macintosh;... Accept: text/xml,application/xml,app Robert Tolksdorf und Peter Löhr 12

13 Syntax Format: method resource HTTP/x.y headers [ data ] method: GET, PUT, POST, HEAD und andere Methoden resource identifiziert Dokument - allgemeiner: Ressource absoluter Pfad im Server-Verzeichnisbaum vollqualifizierte URL bei Anfrage an Proxy (s.u.) ( *, authority bei bestimmten Methoden ) x.y ist die Version, 1.0 oder 1.1 (1.2 ist experimentell und nicht allgemein in Gebrauch) headers: einige Kopfzeilen (s.u.) data (optional): mitzuschickende Daten Robert Tolksdorf und Peter Löhr 13

14 GET $ nc 80 (wie S. 8) GET /lehre/ws08/alp5/index.html HTTP/1.0 HTTP/ OK Date: Sat, 06 Dec :13:45 GMT Server: Apache Last-Modified: Tue, 18 Nov :07:47 GMT ETag: "1c9c001-47a c0" Accept-Ranges: bytes Content-Length: 1146 Content-Type: text/html Via: Connection: close <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>netzprogrammierung</title>... Robert Tolksdorf und Peter Löhr 14

15 HEAD $ nc 80 HEAD /lehre/ws08/alp5/index.html HTTP/1.0 HTTP/ OK Date: Sat, 06 Dec :04:25 GMT Server: Apache Last-Modified: Tue, 18 Nov :07:47 GMT ETag: "1c9c001-47a c0" Accept-Ranges: bytes Content-Length: 1146 (wie S. 14) Content-Type: text/html Via: Connection: close $ Robert Tolksdorf und Peter Löhr 15

16 Proxy-Server X Web browser Proxy Cache Web Server X Firewall Document database Der HTTP-Proxy Server der FU-Berlin ist unter der Adresse http-proxy.fu-berlin.de auf Port 80 zu erreichen. Robert Tolksdorf und Peter Löhr 16

17 Anfragen über Proxy Bei Anfrage über Proxy ist Ressource komplett identifiziert Methode GET Anforderung einer Informationseinheit vom Server GET HTTP/1.1 an Proxy http-proxy.fu-berlin.de Beantwortet mit Code, Kopfzeilen, Inhalt Methode HEAD Anforderung der Beschreibung einer Informationseinheit vom Server HEAD HTTP/1.1 an Proxy http-proxy.fu-berlin.de Beantwortet mit Code, Kopfzeilen Robert Tolksdorf und Peter Löhr 17

18 Weitere Methoden in HTTP PUT Hochladen einer Datei zum Server PUT /index.html HTTP/1.1 Beantwortet mit Code, Kopfzeilen POST Übertragung von Daten, die der Benutzer in ein HTML- Formular eingetragen hat, zum Server POST /some.cgi HTTP/ <gefolgt von Daten>... Beantwortet mit Code, Kopfzeilen, eventuell Inhalt DELETE Löschen einer Datei auf einem Server DELETE /index.html HTTP/1.1 Beantwortet mit Code, Kopfzeilen Robert Tolksdorf und Peter Löhr 18

19 Weitere Methoden in HTTP TRACE: Server schickt erhaltene Anfrage zurück $ nc 80 TRACE / HTTP/1.0 Max-Forwards: 8 HTTP/ OK Date: Sat, 06 Dec :58:37 GMT Server: Apache/ (Linux/SuSE) Content-Type: message/http Via: Connection: close TRACE /_mi/inf/ HTTP/1.1 Host: Max-Forwards: 7 Via: X-Forwarded-For: X-Forwarded-Server: Connection: Keep-Alive $ Anfrage DSL Provider Robert Tolksdorf und Peter Löhr 19

20 Weitere Anfragen in HTTP OPTIONS: Informationen über Fähigkeiten des Servers $ nc 80 OPTIONS * HTTP/1.0 HTTP/ OK Date: Sat, 06 Dec :07:18 GMT Server: Apache Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 0 Connection: close Content-Type: text/plain $ Robert Tolksdorf und Peter Löhr 20

21 Kopfzeilen für Anfragen und Antworten Date: datetime Datum/Zeit des Abschickens der Nachricht im RFC-1123-Format, z.b. Sat, 06 Dec :07:18 GMT Connection: option Verbindung wird nach Ablauf von Frage/Antwort gelöst mit option close nicht gelöst mit option keep-alive... Via: protocolversion host Weg der Nachricht, z.b. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1) Robert Tolksdorf und Peter Löhr 21

22 Kopfzeilen für Anfragen und Antworten Cache-Control: directive Steuert das Caching von Anfragen und Antworten no-cache: Antwort darf nicht zur Beantwortung anderer Anfragen genutzt werden no-store: Antwort- oder Anfragemitteilungen dürfen nicht gespeichert werden weitere: max-age, max-stale, min-fresh, no-transform, only-if-cached, public, private, must-revalidate, proxyrevalidate, s-maxage Pragma: no-cache entspricht Cache-Control: no-cache Robert Tolksdorf und Peter Löhr 22

23 RFC 1123 in Java Code eines Klienten könnte dieses Fragment enthalten: PrintWriter out = new PrintWriter(socket.getOutputStream()); out.println("get / HTTP/1.0"); SimpleDateFormat rfc1123 = new SimpleDateFormat( "EEE, dd MMM yyyy hh:mm:ss z", Locale.US); Calendar cal = Calendar.getInstance(); cal.settime(new Date()); cal.add(calendar.date, negative); out.println("if-modified-since: "+ rfc1123.format(cal.gettime())+"\n"); out.flush(); BufferedReader in = new BufferedReader(new InputStreamReader( socket.getinputstream())); Bei negative==-7 beispielsweise bleibt die Anfrage erfolglos, wenn der Inhalt des angeforderten Dokument älter als eine Woche ist. Robert Tolksdorf und Peter Löhr 23

24 Kopfzeilen für Anfragen Host: name Name des Servers. Obligatorisch in HTTP 1.1 If-Modified-Since: datetime Forderung nach hinreichend aktuellem Dokument; Antwort: Code 200 OK und Inhalt schicken, bzw. Code 304 Not Modified und Inhalt nicht schicken. If-Unmodified-Since: datetime Forderung nach hinreichend altem Dokument; Antwort: Code 200 OK und Inhalt schicken, bzw. Code 412 Precondition Failed und Inhalt nicht schicken. Robert Tolksdorf und Peter Löhr 24

25 Kopfzeilen für Anfragen Range: range Nur ein Fragment des Dokuments wird angefordert; Antwort: Code 206 Partial Content und Inhalt schicken. $ nc 80 GET /lehre/ws08/alp5/index.html HTTP/1.0 Range: bytes=0-75 HTTP/ Partial Content Date: Sat, 06 Dec :16:27 GMT... Accept-Ranges: bytes Content-Length: 76 Content-Range: bytes 0-75/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head$ Robert Tolksdorf und Peter Löhr 25

26 Weitere Kopfzeilen From: mailaddress Absender-Identifikation typischerweise nicht angegeben und - wenn angegeben - nicht benutzt. User-Agent: product/version ( comments ) Identifikation des Klientenprogramms, i.d.r. ein Browser z.b. Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11;... Browser können sich maskieren, indem sie sich hier nicht korrekt identifizieren. Der Server kann - wenn er will - je nach Browser unterschiedlichen Inhalt ausgeben. Vodafone/1.0/HTC_wizard/ /Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320) Robert Tolksdorf und Peter Löhr 26

27 Weitere Kopfzeilen Referer: URL Die URL der Webseite, auf der ein Link zu dieser Anfrage führte. Authorization: authdata Autorisierungsnachweis, z.b. Authorization: username="mufasa", response="6629fae49393a c4ef1" Proxy-Authorization: authdata Autorisierungsnachweis für Proxy Max-Forwards: number Maximale Anzahl der Weiterleitungen einer OPTIONS- oder TRACE-Anfrage über Gateways oder Proxies Expect: token Klient erwartet bestimmte Eigenschaften des Server/Proxy. Im negativen Fall Fehlercode 417. Robert Tolksdorf und Peter Löhr 27

28 Datencodierung Robert Tolksdorf und Peter Löhr

29 Akzeptierte Sprache(n) Klient kann Präferenzen in der HTTP-Anfrage mitteilen: GET / HTTP/1.1 Accept-Language: de,en Die Reaktion darauf ist vom Browser abhängig. Weiterhin anforderbar: Zeicheneigenschaften. Robert Tolksdorf und Peter Löhr 29

30 Akzeptierte Zeichensätze Accept-Charset: charset ISO ISO ISO ISO-2022-JP UNICODE-1-1 US-ASCII ISO ISO ISO ISO-2022-JP-2 UNICODE-1-1-UTF-7 ISO ISO ISO ISO-2022-KR UNICODE-1-1-UTF-8 Robert Tolksdorf und Peter Löhr 30

31 Anforderung mit Präferenzen Browser kann Präferenzen in der HTTP-Anfrage mitteilen: GET / HTTP/1.1 Accept-Charset: iso ,utf-8;q=0.75,*;q=0.5 q (quality value) gibt Präferenz an, * ist Platzhalter Vom Browser abhängig: Microsoft IE: (keine Angabe) Netscape 4.72: iso ,*,utf-8 NS 6.2: ISO , utf-8;q=0.66, *;q=0.66 Opera 6.0: windows-1252;q=1.0, utf-8;q=1.0, utf-16;q=1.0, iso ;q=0.6, *;q=0.1 Robert Tolksdorf und Peter Löhr 31

32 Angeforderte Kompression Accept-Encoding: encoding identity: Nachricht unkomprimiert geschickt gzip, compress, deflate: komprimierte Übertragung gzip: Lempel-Ziv LZ77 mit 32 Bit Prüfsumme, RFC (Programm gzip) compress: adaptives Lempel-Ziv-Welch (LZW). (Programm compress) deflate:"zlib"-format, RFC 1950, zusammen mit "deflate - Kompression gemäß RFC 1951 Robert Tolksdorf und Peter Löhr 32

33 Angeforderte Medienart Accept: ( type/subtype [ ; q=quality ] ) + Beispiele: Accept: text/html, text/plain;q=0.5 Accept: image/jpeg HTTP kann auch andere Inhalte als Textdaten übertragen: Robert Tolksdorf und Peter Löhr 33

34 MIME Multipurpose Internet Mail Extensions - MIME - (RFC 2045, RFC 2046) definiert ein Schema zur Benennung von Inhaltstypen wie Text, Bild etc. Kopfzeilen in Antworten: MIME-Version: version Content-type: type/subtype, z.b. text/html image/jpeg vnd.motorola.video HTTP/ OK Last-Modified: Sun, 15 Mar :26:50 GMT MIME-Version: 1.0 Date: Fri, 20 Mar :43:11 GMT Server: Roxen-Challenger/1.2beta1 Content-type: text/html Content-length: 2990 <HTML><HEAD><TITLE>TU Berlin --- Robert Tolksdorf und Peter Löhr 34

35 MIME-Typen Neun Typen: text: Text, z.b. text/plain, text/html, text/rtf, text/vnd.latex-z image: Grafiken, z.b. image/jpeg, image/png, vnd.microsoft.icon video: Bewegtbilder, z.b. video/mpeg, video/quicktime, video/vnd.vivo audio: Ton, z.b. audio/g726-16, audio/vnd.nokia.mobile-xmf application: binäre und/oder anwendungsspezifische Daten, z.b. application/pdf, application/edifact, application/vnd.ms-powerpoint multipart: mehrteilige Daten, z.b. multipart/mixed message: Nachrichten, z.b. message/rfc822 model: Modellierungsdaten, z.b. model/vrml example: Beispiele, z.b. example Robert Tolksdorf und Peter Löhr 35

36 MIME-Typen MIME-Typen werden verwaltet von der IANA - Internet Assigned Numbers Authority: Verarbeiten eines bestimmten Medientyps nach Erhalt: Teil der Anwendung (siehe auch javax.mail.internet.mimemessage) eventuell Unterstützung durch Betriebssystem Ermittlung des MIME-Typs für eine Datei: Ableitung aus Endung (siehe auch javax.activation.mimetypesfiletypemap) Ableitung aus Inhalt der Datei Robert Tolksdorf und Peter Löhr 36

37 Content Negotiation Aushandeln von Inhaltscharakteristiken zwischen Klient und Web Server entlang folgender 4 Dimensionen: Medienart, z.b. Accept: text/html, text/plain Sprache, z.b. Accept-Language: de, en Kompression, z.b. Accept-Encoding: compress;q=0.5, gzip;q=1.0 Zeichensatz, z.b. Accept-Charset: iso ,utf-8;q=0.75,*;q= unter Berücksichtigung der angegebenen Präferenzen Der Server hat seine eigenen Konventionen für die Kennung der verwalteten Inhalte, z.b. über Dateinamen: foo.en.html foo.html.en foo.en.html.gz Robert Tolksdorf und Peter Löhr 37

38 Antworten Robert Tolksdorf und Peter Löhr

39 Aufbau Antwort Antwort besteht aus Antwortcode Antwortbeschreibung durch Kopfzeilen Allgemeine Beschreibungen Antwortspezifische Beschreibungen Beschreibung eventuell beiliegenden Inhalts Leerzeile Eventueller Inhalt Beispiel: HTTP/ OK Last-Modified: Sun, 15 Mar :26:50 GMT MIME-Version: 1.0 Date: Fri, 20 Mar :43:11 GMT Server: Roxen-Challenger/1.2beta1 Content-type: text/html Content-length: 2990 <HTML><HEAD><TITLE>TU Berlin --- Robert Tolksdorf und Peter Löhr 39

40 Ergebnis-Codes (Auszug) Informational 1xx: experimentell Robert Tolksdorf und Peter Löhr 40

41 Ergebnis-Codes Successful 2xx: Erfolgreiche Ausführung 200 OK GET, HEAD, POST, TRACE erfolgreich, Antwort anbei 201 Created Erfolgreiches PUT oder POST 202 Accepted Für spätere Ausführung vermerkt 203 Non-Authoritative Information Metainformationen in Kopfzeilen stammen von Dritten 204 No Content Anfrage verarbeitet, kein Antwortinhalt notwendig 205 Reset Content Anfrage verarbeitet, Ansicht erneuert 206 Partial Content GET mit Teilanforderung erfolgreich, Teilantwort anbei Robert Tolksdorf und Peter Löhr 41

42 Ergebnis-Codes Redirection 3xx: neue, modifizierte Anfrage erforderlich 300 Multiple Choices Verschiedene Versionen erhältlich, Accept-Kopfzeile nicht eindeutig 301 Moved Permanently Verschoben (Location-Kopfzeile gibt Auskunft - s.u.) 302 Found Moved Temporarily Verschoben (Location-Kopfzeile gibt Auskunft - s.u.) 303 See Other Andere URI benutzen (Location-Kopfzeile gibt Auskunft - s.u.) 304 Not Modified Bei GET mit If-Modified-Since-Kopfzeile 305 Use Proxy Muss über Proxy angesprochen werden (Location-Kopfzeile gibt Auskunft - s.u.) 307 Temporary Redirect Umleitung bei GET, HEAD Robert Tolksdorf und Peter Löhr 42

43 Ergebnis-Codes Client Error 4xx: Fehlerhafte Anfrage des Klienten 400 Bad Request Falsche Anfragesyntax 401 Unauthorized Passwort erforderlich (WWW-Authenticate-Kopfzeile - s.u.) 403 Forbidden Ohne Angabe von Gründen verweigert 404 Not Found Nicht auffindbar 405 Method Not Allowed Methode für die Ressource nicht zugelassen 406 Not Acceptable Ressource passt nicht zu Accept-Kopfzeilen 407 Proxy Authentication Required Passwort für Proxy erforderlich (Proxy-Authenticate-Kopfzeile) 408 Request Timeout Zeitüberschreitung bei Übermittlung der Anfrage Robert Tolksdorf und Peter Löhr 43

44 Ergebnis-Codes 409 Conflict Methode steht in Konflikt mit Zustand des Servers, Client kann Konflikt aufheben 410 Gone Permanent nicht auffindbar 411 Length Required Content-Length-Kopfzeile erforderlich 412 Precondition Failed Bedingungen der Anfrage (in Kopfzeilen) unerfüllbar 413 Request Entity Too Large Anfrage zu groß 414 Request URI Too Long URI zu lang 415 Unsupported Media Type Unbekanntes Inhaltsformat 416 Requested Range Not Satisfiable Teilanforderung falsch beschrieben 417 Expectation Failed Expect-Kopfzeile unerfüllbar Robert Tolksdorf und Peter Löhr 44

45 Ergebnis-Codes Server Error 5xx: Fehlfunktion beim Server 500 Internal Server Error 501 Not Implemented Angeforderte Methode wird nicht unterstützt 502 Bad Gateway Weiterer benutzter Server nicht erreichbar 503 Service Unavailable Server kann Dienst gerade nicht erbringen (vgl. Kopfzeile Retry-After - s.u.) 504 Gateway Timeout Weiterer benutzter Server antwortet nicht rechtzeitig 505 HTTP Version Not Supported Unbekannte HTTP-Version Robert Tolksdorf und Peter Löhr 45

46 Kopfzeilen Date:... Zeitpunkt des Abschickens der Ressource Server: productdescription Server-Produkt, z.b. Server: Apache/ (Darwin) Last-Modified: date Zeitpunkt der letzten Änderung der Ressource Accept-Ranges: token Möglichkeit der Teilübertragung, z.b. Accept-Ranges: bytes oder Accept-Ranges: none Retry-After: date Bei 503: Zeitpunkt zur Wiederholung der Anfrage, z.b. Retry-After: Fri, 31 Dec :59:59 GMT Retry-After: 120 (Sekunden) Age: seconds Geschätztes Alter der Ressource Robert Tolksdorf und Peter Löhr 46

47 Kopfzeilen Location: URI Bei 201: Adresse der neu geschaffenen Ressource Bei 3xx: Adresse für Umlenkung Expires: date Kann nach dem angegebenem Datum aus dem Cache gelöscht werden WWW-Authenticate: credentials Klient muss sich gegenüber Server ausweisen, sonst Fehler 401 Proxy-Authenticate: credentials Klient muss sich gegenüber Proxy ausweisen, sonst Fehler 407 Connection: closeorother Robert Tolksdorf und Peter Löhr 47

48 Inhaltsbeschreibende Kopfzeilen MIME-Version: version Content-Language: language Sprache des Inhalts de, en, en-us,... Content-Encoding: encoding Kodierung des Inhalts deflate, gzip, Content-Type: mediatype Medientyp des Inhalts text/html, image/gif,... Robert Tolksdorf und Peter Löhr 48

49 Inhaltsbeschreibende Kopfzeilen Content-Length: length Länge des Inhalts in Byte Content-Range: range Beschreibung des Ausschnitts bei Teilanforderung Content-Location: URI Adresse der Ressource Content-MD5: MD5checksum Hashwert (message digest) für Integritätsprüfung des Inhalts Robert Tolksdorf und Peter Löhr 49

50 Web Server Aufgabe: Schreiben Sie einen Web Server, der alle Anfragen mit einem Echo beantwortet: er wartet an Port 80 auf Verbindungen, er verarbeitet Anfragen der Art GET er antwortet mit einem Echo der Anfrage als HTML-Code und schließt die Verbindung. Beachte: die Antwort muss beginnen mit HTTP/ OK Content-Type: text/html Leerzeile damit der Browser sie richtig anzeigt. (Der Einfachheit halber ohne Threads!) Robert Tolksdorf und Peter Löhr 50

51 Web Server import java.io.*; import java.net.*; public class WebServer { // starten mit java WebServer [ port ] public static void main(string[] arg) throws Exception { int port = arg.length==1? Integer.parseInt(arg[0]) : 80; ServerSocket socket= new ServerSocket(port); String line[] = new String[10]; while (true) { // Anfrage entgegennehmen Socket connection = socket.accept(); BufferedReader in = new BufferedReader( new InputStreamReader( (connection.getinputstream()))); int i = 0; // Anfrage lesen while (! (line[i++] = in.readline()).equals("") ) ; // Inhalt der Anfrage unbesehen akzeptieren, // Webseite mit Echo zurückschicken: Robert Tolksdorf und Peter Löhr 51

52 Web Server } } // Webseite mit Echo zurückschicken: PrintWriter out = new PrintWriter( connection.getoutputstream()); out.println("http/ OK"); out.println("content-type: text/html"); out.println(""); out.print("<html><head><title>x</title></head>"+ "<BODY><H2>Mein Browser</H2>"+ "<P>hat folgende Anfrage geschickt: <PRE>"); for (int k=0; k<i-1; k++) out.println(line[k]); out.print("</pre></body></html>"); out.flush(); connection.close(); } Robert Tolksdorf und Peter Löhr 52

53 Web Server $ java WebServer 4712 & Robert Tolksdorf und Peter Löhr 53

54 HTTPS: Sichere Verbindungen über SSL Robert Tolksdorf und Peter Löhr

55 http vs. https Robert Tolksdorf und Peter Löhr 55

56 HTTP über SSL Sockets HTTP benutzt TCP zur Kommunikation HTTP TCP Secure Sockets Layer (SSL) ermöglicht TCP-Verbindungen mit bestimmten Sicherheitseigenschaften: verschlüsselte Datenübertragung (--> Vertraulichkeit, Integrität) Authentifizierung der Kommunikationspartner über Zertifikate Eigenschaften werden bei Verbindungsherstellung ausgehandelt HTTPS steht für HTTP über SSL HTTP SSL TCP voreingestellter Port ist 443 Robert Tolksdorf und Peter Löhr 56

57 SSL 1994 von Netscape entwickelt Basierend auf SSL 3.0: IETF-Standard Transport Layer Security (TLS) T. Dierks, C. Allen: RFC The TLS Protocol, Version Beachte: SSL kann für beliebige Anwendungen eingesetzt werden, nicht nur für HTTP Robert Tolksdorf und Peter Löhr 57

58 SSL in Java Implementierungen für SSL Sockets im Paket javax.net.ssl SSL Sockets werden dort durch Fabriken erzeugt (statt durch Konstruktoren) Sockets: Fabrik durch javax.net.ssl.sslsocketfactory.getdefault() ermitteln Dort mit createsocket einen SSLSocket erzeugen Server Sockets: Fabrik durch javax.net.ssl.sslserversocketfactory.getdefault() ermitteln Dort mit createserversocket einen ServerSocket erzeugen Klassen SSLSocket bzw. SSLServerSocket sind Unterklassen von Socket bzw. ServerSocket mit SSL-Erweiterungen Robert Tolksdorf und Peter Löhr 58

59 Client für HTTP über SSL import java.io.*; import java.net.*; import javax.net.ssl.*; public class HttpsClient { // Start mit java HttpsClient host public static void main(string[] arg) throws Exception { SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); Socket socket = factory.createsocket(arg[0], 443); PrintWriter out = new PrintWriter(socket.getOutputStream()); out.println("get / HTTP/1.1\nHost: "+arg[0]+"\n"); out.flush(); InputStream is = socket.getinputstream(); BufferedReader in = new BufferedReader( new InputStreamReader(is)); do { String line = in.readline(); if (line==null) break; else System.out.println(line); } while (true); } } Robert Tolksdorf und Peter Löhr 59

60 Client für HTTP über SSL $ java HttpsClient HTTP/ OK Date: Mon, 08 Dec :23:06 GMT Server: Apache/ (Linux/SuSE) Last-Modified: Mon, 08 Dec :48:13 GMT ETag: "2bae8bf-5cd1-ed6d540" Accept-Ranges: bytes Content-Length: Content-Type: text/html; charset=utf-8 Via: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " $ Robert Tolksdorf und Peter Löhr 60

61 Zusammenfassung Robert Tolksdorf und Peter Löhr

62 Zusammenfassung HTTP Anfrage/Antwort-Interaktion Anfragen Methoden Kopfzeilen MIME Antworten Antwortcodes Kopfzeilen HTTPS SSL Robert Tolksdorf und Peter Löhr 62

63 Literatur R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee: Hypertext Transfer Protocol - HTTP/1.1. RFC Internet Assigned Numbers Authority: MIME Media Types. T. Dierks, C. Allen: RFC The TLS Protocol, Version Robert Tolksdorf und Peter Löhr 63

Netzprogrammierung Hypertext Transfer Protocol HTTP

Netzprogrammierung Hypertext Transfer Protocol HTTP Netzprogrammierung Hypertext Transfer Protocol HTTP Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de http://www.robert-tolksdorf.de

Mehr

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request)

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request) 15. Das Hypertext Transfer Protokoll 15-1 15. Das Hypertext Transfer Protokoll 15-2 HTTP - Überblick HTTP Kommunikation (1)Request 1. Requests und Responses 2. Content Negotiation 3. State Management (Cookies)

Mehr

Web APIs (REST) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme harasic@inf.fu-berlin.

Web APIs (REST) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme harasic@inf.fu-berlin. Web APIs (REST) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme harasic@inf.fu-berlin.de Motivation: The Web as a platform 2 Das Web intuitiv einfach und

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

HTTP Squid Debugging-Hilfen Praxis. Der Webproxy Squid. Ein Überblick und ein wenig (viel) HTTP. Dirk Geschke. Linux User Group Erding

HTTP Squid Debugging-Hilfen Praxis. Der Webproxy Squid. Ein Überblick und ein wenig (viel) HTTP. Dirk Geschke. Linux User Group Erding Der Webproxy Ein Überblick und ein wenig (viel) HTTP Linux User Group Erding 28. April 2010 Gliederung HTTP 1 HTTP 2 3 4 HTTP Überblick HTTP Hypertext Transfer Protocol dient der Übertragung von Daten

Mehr

HTTP Hypertext Transfer Protocol

HTTP Hypertext Transfer Protocol Ein Vortrag aus der Reihe inf.misc 8. Juni 2005 50. Geburtstag von Tim Berners-Lee Inhalt 1 2 3 Content Negotiation Caching Authentifizierung 4 Definition RFC 2616, Abstract: The Hypertext Transfer Protocol

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

Netzbasierte Informationssysteme Die Architektur des Web I

Netzbasierte Informationssysteme Die Architektur des Web I Netzbasierte Informationssysteme Die Architektur des Web I Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de

Mehr

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP 8. Juni 2004 Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP HTTP über SSL = sicheres HTTP Überblick HTTP: Protokoll zur Datenübertragung im Internet Klartextprotokoll

Mehr

3. Anwedungsprotokolle

3. Anwedungsprotokolle Überblick 3.1 Client/Server-Modell 3. Anwedungsprotokolle 3.2 Anforderung/Antwortprotokolle 3.3 Webkommunikation mit HTTP 3.4 E-mail Übertragung mit SMTP O. Kao Webbasierte Informationssysteme 3-1 3.1

Mehr

XML- und Webservice- Sicherheit

XML- und Webservice- Sicherheit XML- und Webservice- Sicherheit 1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol Gliederung Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen Literatur: A. S. Tanenbaum, Computer Networks, 4th. Ed.,

Mehr

Einleitung SMTP Grundlagen HTTP 1.1 Session Management in HTTP HTTP HTTP 0.9

Einleitung SMTP Grundlagen HTTP 1.1 Session Management in HTTP HTTP HTTP 0.9 HTTP 0.9 Die Urversion des Hypertext Transport Protocols bietet ein einfaches Request-Response Modell aufbauend auf einer TCP Verbindung. Client baut eine TCP Verbindung auf, der Default für den Zielport

Mehr

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke)

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke) 1 WS 2000/2001 LVA Netzwerke und Verteilte Systeme (Jörg. R. Mühlbacher, Peter R. Dietmüller, Rudolf Hörmanseder, Dietmar Rimser) Teil HTTP (Peter René Dietmüller) Rückblick 1989 CERN, Tim Berners-Lee

Mehr

1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol Gliederung Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen 3. HTTP-Methoden 4. Header 5. Ein Beispiel 6. Performance

Mehr

180 Ringing Diese Antwort zeigt an, dass das aufgerufene Programm lokalisiert worden ist und der Anruf signalisiert wird.

180 Ringing Diese Antwort zeigt an, dass das aufgerufene Programm lokalisiert worden ist und der Anruf signalisiert wird. 1xx Informative Rückmeldungen 100 Trying Diese Antwort zeigt an, dass Maßnahmen im Namen des Anrufers ergriffen wurden, aber dass das aufgerufene Programm nicht lokalisiert wurde. 180 Ringing Diese Antwort

Mehr

HTTP - Hypertext Transfer Protcol

HTTP - Hypertext Transfer Protcol HTTP - Hypertext Transfer Protcol Wird verwendet seit 1990 1996 erste öffentliche Spezifikation durch RFC 1945 HTTP/1.0, frühere Version unter HTTP/0.9 bekannt. Standardisiert in Version HTTP/1.1 durch

Mehr

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

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E. 10 Hypertext Transfer Protocol 10.1 Hypermedia 10.2 Universal Resource Identifier 10.3 Nachrichten 10.4 Proxy 10.5 Cache 10.6 Authentifizierung 10.7 S Hypermedia: A D C B E F Bemerkung: Jede sollte über

Mehr

2 Hypertext Transfer Protocol (HTTP)

2 Hypertext Transfer Protocol (HTTP) 2 Hypertext Transfer Protocol (HTTP) Aus der Definition von HTTP/1.1 (RFC 2616): The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information

Mehr

Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen

Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen Wichtige Eigenschaften der verwendeten Protokolle und Schnittstellen Der HTTP-Request die Anforderung einer URL durch den Client Im Folgenden ist ein vollständiger HTTP-Request eines Clients zur Anforderung

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

Überblick. Netzprogrammierung 6. Netzkommunikation Internet Dienste. Was ist das Internet

Überblick. Netzprogrammierung 6. Netzkommunikation Internet Dienste. Was ist das Internet Überblick 1. Internet als Protokollfamilie 2. HTTP 3. FTP Netzprogrammierung 6. Netzkommunikation Internet Dienste Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte

Mehr

(Client-Server-Prinzip)

(Client-Server-Prinzip) 3. Anwedungsprotokolle Überblick 3.1 Client/Server-Modell 3.2 Anforderung/Antwortprotokolle 3.3 Webkommunikation mit HTTP 3.4 E-mail Übertragung mit SMTP O. Kao Webbasierte Informationssysteme 3-1 Dienstleistungsbeziehung

Mehr

Literatur. [2-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Webtechnologien SS 2015 - Teil 2/HTTP

Literatur. [2-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Webtechnologien SS 2015 - Teil 2/HTTP Literatur [2-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [2-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [2-3] Hypertext Transfer

Mehr

2. WWW-Protokolle und -Formate

2. WWW-Protokolle und -Formate 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

Mehr

HTTP. Hypertext Transfer Protocol. 4. Februar 2004

HTTP. Hypertext Transfer Protocol. 4. Februar 2004 HTTP Hypertext Transfer Protocol Bernhard Möller bmoeller@techfak.uni-bielefeld.de René Tünnermann rtuenner@techfak.uni-bielefeld.de 4. Februar 2004 1 Einleitung Das Hypertext Transfer Protokoll wird bereits

Mehr

1. Übung zur Vorlesung "Einführung in Verteilte Systeme"

1. Übung zur Vorlesung Einführung in Verteilte Systeme 1. Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Thema: HTTP Ulf Rerrer Institut für Informatik Universität Paderborn Organisatorisches 3 Projekte Je 1 Aufgabenzettel Je

Mehr

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL TCP/IP: Standard Protokolle Konrad Rosenbaum, 2006/7 DNS - Domain Name System hierarchische, global verteilte Datenbank löst Namen in IP-Adressen auf Host hat einen primären Nameserver, der Fragen selbst

Mehr

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

!# $ % Internet Protokolle: HTTP 1/38 !"# $ % Internet Protokolle: HTTP 1/38 1 Themenübersicht Schichtenmodell Gopher /FTP Statistik URL Einleitung Anwendungsablauf Beispiel mit Telnet Request, Response Anfragemethoden header Negotiation Proxyserver

Mehr

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP Literatur [12-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [12-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [12-3] Hypertext

Mehr

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

Web-Konzepte für das Internet der Dinge Ein Überblick Web-Konzepte für das Internet der Dinge Ein Überblick Samuel Wieland sawielan@student.ethz.ch ETH Zürich Seminar Das Internet der Dinge Historisches Tim Berners-Lee Erster Web-Server Bildquelle: Wikimedia

Mehr

100 Trying Ein Anruf wird zu vermitteln versucht. Anruf wird weitergeleitet

100 Trying Ein Anruf wird zu vermitteln versucht. Anruf wird weitergeleitet Code Text Phrase Bedeutung 100 Trying Ein Anruf wird zu vermitteln versucht 180 Ringing Es klingelt beim Gegenüber 181 Call Is Being Forwarded Anruf wird weitergeleitet 182 Queued Anruf ist in Warteschleife

Mehr

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier +\SHUWH[W7UDQVIHU3URWRFRO +773 (ULN:LOGH 7,.² (7+= ULFK 6RPPHUVHPHVWHU hehuvlfkw y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier y Universal Resource Identifier

Mehr

Hypertext Transfer Protocol

Hypertext Transfer Protocol Ingo Blechschmidt LUGA 6. Juli 2005 Inhalt 1 Geschichte Verwendung von HTTP 2 Typischer Ablauf Request-Methoden Header-Felder Keep-Alive 3 Nutzen von Proxies Proxies bei HTTP CONNECT-Methode

Mehr

Beispiel einer Anwendung: HTTP

Beispiel einer Anwendung: HTTP Beispiel einer Anwendung: HTTP» HTTP: Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative,

Mehr

Internet Protokolle für Multimedia - Anwendungen

Internet Protokolle für Multimedia - Anwendungen Internet Protokolle für Multimedia - Anwendungen Kapitel 5.7 Streaming im Web (RTSP) 1 Streaming Media (1) Streaming Media Strom ist kontinuierlich wird unmittelbar während des Empfangs wiedergegeben wird

Mehr

Beispiel Time Client/Server

Beispiel Time Client/Server Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle

Mehr

0.1 XForms: XML Submission

0.1 XForms: XML Submission 0.1 XForms: XML Submission URI scheme method Serialization Submission http https mailto post application/xml HTTP POST or equivalent http https get application/x-www-form-urlencoded HTTP GET or equivalent

Mehr

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Grundlagen der CGI-Programmierung

Grundlagen der CGI-Programmierung Grundlagen der Martin Vorländer PDV-Systeme GmbH, Bornhardtstr. 3, 38644 Goslar Telefon 05321-3703-0, Fax 05321-8924 info@pdv-systeme.de, www.pdv-systeme.de Was ist CGI? Common Gateway Interface Protokoll

Mehr

Crashkurs http - CGI/Servlets(JSF) - Viewer

Crashkurs http - CGI/Servlets(JSF) - Viewer jkrueger(at)cebitec.uni-bielefeld.de http TCP Referenzmodell : ApplicationLayer zustandloses Protokoll textbasiert für Hypertext entwickelt ist es nicht darauf beschränkt Nachrichten : Request : Client

Mehr

Rechnernetze I SS 2014. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 9.

Rechnernetze I SS 2014. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 9. echnernetze I SS 2014 oland Wismüller Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 9. Mai 2014 oland Wismüller Betriebssysteme / verteilte Systeme

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Netzprogrammierung: URL-Schemata

Netzprogrammierung: URL-Schemata Netzprogrammierung: URL-Schemata Robert Tolksdorf und Peter Löhr Überblick 1. Vereinheitlichte Dienstnutzung in Java 3 2. Eigene URL-Schemata 24 3. Push- und Pull-Interaktion 28 Robert Tolksdorf und Peter

Mehr

Das Hypertext Transfer Protokoll HTTP/1.1

Das Hypertext Transfer Protokoll HTTP/1.1 Das Hypertext Transfer Protokoll HTTP/1.1 Michael Dienert 18. Januar 2009 Inhaltsverzeichnis 1 RFC 2616 und RFC 2396 und die Syntaxbeschreibungssprache BNF 1 1.1 Request For Comments.........................

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

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

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze) Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze) 23.03.15 1 Literatur [2-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [2-2] Badach, Anatol;

Mehr

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014 Rechnernetze I SS 2014 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 10. August 2015 Betriebssysteme / verteilte Systeme Rechnernetze I (1/13) i Rechnernetze

Mehr

Kommunikationsnetze. 7. Das World Wide Web 7.2 Das Hypertext Transfer Protocol. Kommunikationsnetze 7. Das World Wide Web 7.3 HTTP

Kommunikationsnetze. 7. Das World Wide Web 7.2 Das Hypertext Transfer Protocol. Kommunikationsnetze 7. Das World Wide Web 7.3 HTTP Kommunikationsnetze 7.2 Das Hypertext Transfer Protocol Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen 3. HTTP-Methoden 4. Header 5. Ein Beispiel 6. Performance 7. SSL Literatur: A. S. Tanenbaum, Computer

Mehr

HTTP. Ausarbeitung im Rahmen der Veranstaltung Verteilte und parallele Systeme II. an der Fachhochschule Bonn-Rhein-Sieg Fachbereich Informatik

HTTP. Ausarbeitung im Rahmen der Veranstaltung Verteilte und parallele Systeme II. an der Fachhochschule Bonn-Rhein-Sieg Fachbereich Informatik HTTP Ausarbeitung im Rahmen der Veranstaltung Verteilte und parallele Systeme II an der Fachhochschule Bonn-Rhein-Sieg Fachbereich Informatik Wintersemester 04/05 Autoren: Roland Gude und Christoph Wiesen

Mehr

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

Peter Sobe Internettechnologien. HTTP Protokoll (1) Hypertext Transport Protocol, größtenteils zum Austausch von Hypertext (HTML, xhtml) benutzt WWW Web basierend auf dem Internet Das Internet war bereits eher als das Web vorhanden, mit verteilten Anwendungen, Dateitransfer, Netzwerk- Dateisystemen (NFS) Web: entstanden durch Vorhandensein des

Mehr

HTTP / SHTTP. Schwerpunkt: Technische Aspekte. Ausarbeitung von Corinna Habets im Rahmen des Proseminars

HTTP / SHTTP. Schwerpunkt: Technische Aspekte. Ausarbeitung von Corinna Habets im Rahmen des Proseminars HTTP / SHTTP Schwerpunkt: Technische Aspekte Ausarbeitung von Corinna Habets im Rahmen des Proseminars Methoden und Werkzeuge an der RWTH Aachen im WS 2003/04 Stand: 16. Oktober 2003 Inhaltsverzeichnis

Mehr

RESTful API Grundlagen mit PHP und Payrexx

RESTful API Grundlagen mit PHP und Payrexx RESTful API Grundlagen mit PHP und Payrexx Autor: Michael Räss, michael.raess@payrexx.com Stand: 21.11.2017 Payrexx AG Ziele Begriffe und Definition verstehen Prinzipien / Funktionsweise kennenlernen Grundlagen

Mehr

Mehrsprachige Web-Sites mit Apache

Mehrsprachige Web-Sites mit Apache Mehrsprachige Web-Sites mit Apache Content Negotiation statt Länderflaggen Stefan Kuhlins Lehrstuhl für Wirtschaftsinformatik III Universität Mannheim 68131 Mannheim http://www.kuhlins.de/ Zusammenfassung

Mehr

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075 Praxis der Internet-Programmierung mit Java, Apache und XML (JAX) Institut für Informatik Martin.Guggisberg@unibas.ch KWWSMD[QDQRZRUOGRUJ -$9$ ;0/ $3$&+( Organisatorisches =HLWHQ" 9RUOHVXQJDo 13.00-14.00

Mehr

4. Servlets Ein kleiner Einstieg

4. Servlets Ein kleiner Einstieg 4. Servlets Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web Servern und Containern Erstellung einfacher Servlets (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K.

Mehr

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin <olga.liskin@gmail.com>

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin <olga.liskin@gmail.com> REST Grundlagen Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web Olga Liskin Übersicht Motivation, Einführung Architekturstil REST RESTful Webservices Patterns,

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

Hypertext Transfer Protocol (Secure)

Hypertext Transfer Protocol (Secure) Hypertext Transfer Protocol (Secure) von: Klasse: IT04a der BBS1 KL Stand: 08.06.2006 Inhaltsverzeichnis 1. Einleitung... 1 2. Ablauf einer HTTP-Verbindung...2 3. HTTP-Requests... 3 4. HTTP-Response...

Mehr

HTTP. Arthur Zaczek. Aug 2015

HTTP. Arthur Zaczek. Aug 2015 Arthur Zaczek Aug 2015 1 Einleitung 1.1 Definition Das Hypertext Transfer Protocol (HTTP, dt. Hypertext-Übertragungsprotokoll) ist ein Protokoll zur Übertragung von Daten über ein Netzwerk. Es wird hauptsächlich

Mehr

2 Grundlegende Funktionsweise eines HTTP-Servers

2 Grundlegende Funktionsweise eines HTTP-Servers 2 Grundlegende Funktionsweise eines HTTP-Servers In diesem Abschnitt soll das Zusammenspiel zwischen der Transportschicht und der Anwendungsschicht am Beispiel des Protokolls HTTP erläutert werden. Im

Mehr

Programmierkurs Kapitel 3

Programmierkurs Kapitel 3 Kapitel 3 Dipl.-Wirt.-Inf. Stefan Fleischer Dipl.-Wirt.-Inf. Ulrich Wolffgang Komponente: Downloader Interface für Downloader entwickeln import java.io.ioexception; import java.net.url; public interface

Mehr

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander Überblick 1. Zustand in Web Anwendungen Netzprogrammierung 7b. Zustand in Web Anwendungen Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Mehr

In diesem Impressum hat sich die Euroweb Internet GmbH selbst als Ersteller der Webseiten markiert:

In diesem Impressum hat sich die Euroweb Internet GmbH selbst als Ersteller der Webseiten markiert: In dem aufgeführten Schriftsatz vom 22.10.2010 bestreiten die Beschuldigten auf Seiten 6 und 7 vorsätzlich falsch dass die Euroweb Internet GmbH den Apache Webserver, PHP, sowie weiter MySQL und Plesk

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

Grundlagen der WWW- und Dokumenten-Architektur. Robert Strzebkowski TFH Berlin

Grundlagen der WWW- und Dokumenten-Architektur. Robert Strzebkowski TFH Berlin Grundlagen der WWW- und Dokumenten-Architektur Grundlagen der WWW- und Dokumenten-Architektur 1. Die Grundbestandteile vom World Wide Web 2. Das HTTP-Protokoll und 3. Was sind 'URL' und 'URI'? 4. Dynamische

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Rechnernetze I SS 2012. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 23.

Rechnernetze I SS 2012. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 23. echnernetze I SS 2012 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 23. März 2012 Betriebssysteme / verteilte Systeme echnernetze I (1/12) i echnernetze

Mehr

Anleitung REST API Schneelast-Messsystem SMS

Anleitung REST API Schneelast-Messsystem SMS Anleitung REST API Schneelast-Messsystem SMS Version 2.01 REST API Schneelast-Messsystem SMS Die API (Schnittstelle) ist als sogenannter RESTful Webservice angelegt, bei dem jede Funktion über eine eindeutige

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Anzahl der eindeutigen Besucher Ihrer Seiten

Anzahl der eindeutigen Besucher Ihrer Seiten Erläuterungen zur statistischen Auswertung Der Webalizer produziert diverse Reports (im HTML-Format) und Grafiken für jeden Monat. Zusätzlich wird eine Übersichtsseite für den aktuellen und die vorhergegangenen

Mehr

Rechnernetze I. Rechnernetze I. 11 Anwendungsprotokolle SS 2012

Rechnernetze I. Rechnernetze I. 11 Anwendungsprotokolle SS 2012 Rechnernetze I SS 2012 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 23. März 2012 Betriebssysteme / verteilte Systeme Rechnernetze I (1/12) i Rechnernetze

Mehr

Vorlesung Grundlagen des World Wide Web Klausur

Vorlesung Grundlagen des World Wide Web Klausur Prof. Dr. Stefan Brass 12. Juli 2006 Institut für Informatik Universität Halle Vorlesung Grundlagen des World Wide Web Klausur Name: Studiengang: Matrikelnummer: (Diese Daten werden zur Ausstellung des

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

KvBK: Basic Authentication, Digest Authentication, OAuth

KvBK: Basic Authentication, Digest Authentication, OAuth 14.07.2010 Julian Reisser Julian.Reisser@ce.stud.uni-erlangen.de KvBK: Basic Authentication, Digest Authentication, OAuth Motivation Authentifizierung Nachweis, dass man der ist für den man sich ausgibt

Mehr

atms m-payment Dokumentation Info Hotline: Autor: Christian Hutzinger Version 2.6 Stand: Seite 1

atms m-payment Dokumentation Info Hotline: Autor: Christian Hutzinger Version 2.6 Stand: Seite 1 atms m-payment Dokumentation Info Hotline: 0820 240 403 Autor: Christian Hutzinger Version 2.6 Stand: 07.05.2008 Seite 1 Inhaltsverzeichnis: 1 Grundlagen... 3 2 Operator-Identifizierung... 3 2.1 ÖSTERREICH...

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 21. Das WWW befragen Albert-Ludwigs-Universität Freiburg Bernhard Nebel 13.01.2015 1 13.01.2015 B. Nebel Info I 3 / 17 Oft braucht ein Programm Informationen,

Mehr

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

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller Backend Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017 Christopher Dörge, Thomas Sauer, David Müller Aufbau einer RESTful API mit... Ziel node.js, express und MongoDB Symfony und

Mehr

Backend. Hochschule Darmstadt, Fachbereich Informatik, Sommersemester Christopher Dörge, Thomas Sauer, David Müller

Backend. Hochschule Darmstadt, Fachbereich Informatik, Sommersemester Christopher Dörge, Thomas Sauer, David Müller Backend Hochschule Darmstadt, Fachbereich Informatik, Sommersemester 2017 Christopher Dörge, Thomas Sauer, David Müller Aufbau einer RESTful API mit... Ziel node.js, express und MongoDB Symfony und MySQL

Mehr

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze Vorlesung 16 Netzwerkprogrammierung 1 Netzwerkprogrammierung Mit Java-Programmen ist es möglich, Verbindungen über Netze aufzubauen Die Basisfunktionalität zur Netzwerkprogrammierung stellt das Paket java.net

Mehr

SSL-Protokoll und Internet-Sicherheit

SSL-Protokoll und Internet-Sicherheit SSL-Protokoll und Internet-Sicherheit Christina Bräutigam Universität Dortmund 5. Dezember 2005 Übersicht 1 Einleitung 2 Allgemeines zu SSL 3 Einbindung in TCP/IP 4 SSL 3.0-Sicherheitsschicht über TCP

Mehr

Modul 1.4.3. Grundlagen der Internettechnologien. von Günter Schoppe. Hannover, 2002. guenter.schoppe@ers-hameln.de

Modul 1.4.3. Grundlagen der Internettechnologien. von Günter Schoppe. Hannover, 2002. guenter.schoppe@ers-hameln.de Modul 1.4.3 Grundlagen der Internettechnologien von Günter Schoppe Hannover, 2002 guenter.schoppe@ers-hameln.de 1.4.3 Grundlagen der Internet-Technologien 1.4.3.1 Historie 1.4.3.2 Internetprotokolle 1.4.3.3

Mehr

1 von 6 02.01.2011 11:44

1 von 6 02.01.2011 11:44 Statistik für sggelterkinden.ch () - main 1 von 6 02.01.2011 11:44 Zuletzt aktualisiert: 02.01.2011-08:00 Zeitraum: OK Zusammenfassung Zeitraum Jahr Erster Zugriff 14.07. - 20:02 Letzter Zugriff 31.12.

Mehr

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

SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) Request. Response SIP Happens SIP: Session Initiation Protocol (Signalisierungsprotokoll für Sessions) SIP User Agent Request Response SIP User Agent User Agent: Anwendungssoftware auf Terminals (SIP End Points) Terminals:

Mehr

Kapitel WT:II (Fortsetzung)

Kapitel WT:II (Fortsetzung) Kapitel WT:II (Fortsetzung) II. Rechnerkommunikation und Protokolle Rechnernetze Prinzipien des Datenaustauschs Netzsoftware und Kommunikationsprotokolle Internetworking Client-Server-Interaktionsmodell

Mehr

Apache HTTP Server Administration

Apache HTTP Server Administration Seminarunterlage Version: 11.07 Copyright Version 11.07 vom 15. Februar 2017 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Perl-Praxis CGI-Skripte 0-0/22

Perl-Praxis CGI-Skripte 0-0/22 q Perl-Praxis CGI-Skripte 0-0/22 Perl-Praxis CGI-Skripte Jörn Clausen, Jan Krüger Jens Reeder, Alex Sczyrba AG Praktische Informatik Technische Fakultät Universität Bielefeld {asczyrba,jkrueger}@techfak.uni-bielefeld.de

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Architektur von REST basierten Webservices

Architektur von REST basierten Webservices 28.11.2005 Architektur von REST basierten Webservices Referent MARK ALTHOFF REST was invented by ROY T. FIELDING and RICHARD N. TAYLOR Geschichtlicher Hintergrund von REST 1994-1995 taucht der Begriff

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Technische Anforderungen. zum Empfang. von XML-Nachrichten

Technische Anforderungen. zum Empfang. von XML-Nachrichten Technische Anforderungen zum Empfang von XML-Nachrichten 25.11.2004 Peer Uwe Peters 2 1 Inhaltsverzeichnis 1 INHALTSVERZEICHNIS... 2 2 ZIEL DIESES DOKUMENTS... 3 3 KONTEXT... 3 4 SENDEWEG... 4 5 ERREICHBARKEIT...

Mehr

SOAP Schnittstelle von SHAB/Simap/KAB ZH. Version 3.0

SOAP Schnittstelle von SHAB/Simap/KAB ZH. Version 3.0 SOAP Schnittstelle von SHAB/Simap/KAB ZH Version 3.0 Inhaltsverzeichnis 1 Einleitung... 4 2 Beschreibung... 5 2.1 Voraussetzung für die Benutzung des Webservice... 5 2.2 Der Soapserver... 5 2.3 Aufruf

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL5 Folie 1 Dr. Jens Döbler Internet Grundlagen Zusammenschluß

Mehr

Websockets: Leichtgewichtige Verbindungen für Web-Applikationen

Websockets: Leichtgewichtige Verbindungen für Web-Applikationen Websockets: Leichtgewichtige Verbindungen für Web-Applikationen Seite: 1 / 16 Über mich Stefan Neufeind Mit-Geschäftsführer der SpeedPartner GmbH aus Neuss ein Internet-Service-Provider (ISP) Individuelle

Mehr

WEBPROGRAMMIERUNG DATEN AUS DEM WEB AUTOMATISIERT VERARBEITEN

WEBPROGRAMMIERUNG DATEN AUS DEM WEB AUTOMATISIERT VERARBEITEN WEBPROGRAMMIERUNG DATEN AUS DEM WEB AUTOMATISIERT VERARBEITEN Martin Guggisberg 5.9.2015 Weiterbildung: Programmieren im Unterricht mit Python AGENDA Fakten und Grundlagen zum Web Strukturierte Daten (JSON)

Mehr

Programmierzertifikat Objekt-Orientierte Programmierung mit Java

Programmierzertifikat Objekt-Orientierte Programmierung mit Java Programmierzertifikat Objekt-Orientierte Programmierung mit Java Vorlesung 10: Netzwerk Peter Thiemann Universität Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Programmierzertifikat Objekt-Orientierte

Mehr

Sergiy Barlabanov 30.09.2010

Sergiy Barlabanov 30.09.2010 Sergiy Barlabanov 30.09.2010 JBoss UML JEE Java Spring EJB OOP Hibernate 1 Einführung und Theorie 2 REST Ressource implementieren 3 Methods 4 Status und Fehlerhandling 5 Conneg (connent negotiation) 6

Mehr

Digitale Sprache und Video im Internet

Digitale Sprache und Video im Internet Digitale Sprache und Video im Internet Kapitel 6.4 SIP 1 SIP (1) SIP (Session Initiation Protocol), dient als reines Steuerungsprotokoll (RFC 3261-3265) für MM-Kommunikation Weiterentwicklung des MBONE-SIP.

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

Mehr

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

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1 Vorwort... Einleitung... V VII Einführung... 1 1 Grundlagen... 7 1.1 Dokumentmodelle... 7 1.1.1 Multimedia... 8 1.1.2 Hypermedia... 9 1.1.3 Verteilung... 11 1.2 Geschichte des WWW... 13 1.2.1 Struktur...

Mehr