Das WWW-Anwendungsprotokoll: HTTP HTTP (HyperText Transport Protocol) Version 0.9 und 1.0 im RFC1945 beschrieben seit Juni 1999 existiert eine Version 1.1 (RFC2616) dient im Wesentlichen der Übertragung von Web-Seiten GET: HEAD: POST: PUT: ASCII-Anwendungsprotokoll setzt auf eine (sichere) TCP-Verbindung auf Default-Port: 80 kurzlebige Verbindung, da der HTTP-Server nach Beantwortung einer Anfrage durch den HTTP-Client die Verbindung sofort schließt HTTP-Server sendet Antwort-Ressource HTTP/1.1 200 OK Date: Fri, 24 Sep 1999 09:45:51 GMT Server: Apache/1.3.6 (Unix) Transfer-Encoding: chunked Content-Type: text/html <HTML> Gemäß HTML-Konventionen strukturiertes Dokument (Ressource) </HTML> Anfordern eines bestimmten Dokuments Anfordern von Informationen im Kopfteil eines Dokuments Anhängen von Daten an ein existierendes Dokument Anlegen eines Dokuments © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 331 Anfrage von Client an Server Befehlszeile: <Befehl> <URL> <Version> Attibute: Wert z.B. Komm.-Eigenschaften CRLF Hinweis: TCP-Verbindung zwischen Client und Server wurde bereits zuvor aufgebaut Antwort-Zeile Datum Server Angaben zur Kodierung Art des Inhalt Hauptteil © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 332 Web Page Beispiel in Darstellung Die DokumentBeschreibungssprache: HTML HTML (HyperText Markup Language) HTML-Dokumente sind strukturierte Textdokumente HTML-Befehle (Tags) beschreiben die Darstellung des Dokuments (vgl. TEX) HTML-Befehle sind im Klartext im Dokument enthalten z.B. <b> Bold Font </b> Dokumente werden strukturiert in Kopf (Header) und Hauptteil (Body) Header definiert allg. Eigenschaften des Dokuments Body enthält eigentlichen Inhalt Beispiele von Befehlen: HTTP-Client sendet folgende Anfrage GET /index.html HTTP/1.1 Host:www.informatik.tu-chemnitz.de Pragma: no-cache .... Wesentliche Eigenschaften Beispiel einer HTTPAnfrage und HTTPAntwort wird weiter unterteilt in Überschriften, Absätze etc. Textstellen & andere Dokumente lassen sich referenzieren/verknüpfen (Hyperlinks) Nicht-Text-Elemente, wie z.B. Grafiken, können eingebunden werden Vorteil: Darstellung von Client (Browser) an lokale Gegebenheiten anpassbar Standardisierung und kontinuierliche (und sehr schnelle) technologische Weiterentwicklung in Kombination mit XML, CSS etc. Integration von Skriptsprachen und Cascading Style Sheets (CSS) © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 333 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 334 Web Page Beispiel in HTML-Code Was passiert eigentlich genau? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> HTML Header HTML Body • <head> <title>Web Page Example</title> </head> • <body> <h1>Web Page Example</h1> Some facts about HTML: <ul> <li>It is easy to write a document <li>You can even link to other documents </ul> <a href="http://webengineering.org">Web Engineering</a> deals with problems related to development of Applications using this technology. <HR> &copy; 1997-2002 Dr. Martin Gaedke </body> • • </html> • • © 2007-2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 335 Was passiert genau? © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 336 Anfrage der Ressource (spezifiziert durch URI) Betrachtung einer Beispielseite im Browser mit Firebug Wenn in einer Seite mehrere Bilder eingebettet sind? Also: HTML Ressource verweist auf Bild-Ressourcen, wie hier: • <html> <head>…</head> <body> <img src="Bild1.png“/> <img src="Bild2.png“/> <img src="Bild3.png“/> </body> </html> Wieviele HTTP-Anfragen braucht man? Wieviele TCP-Verbindungen werden aufgebaut? Wieviele IP-Packete verschickt? Wieviele…. Client-Side: (1) Prepare Request (2) Request Resource Wichtiges Entwickler-Werkzeug (für Firefox und Chrome erhältlich) Server-Side: (A) Handle Request (B) Process (C) Send Resource (3) Handle Response (4) Process/Render Data of Resource © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 337 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 338 1 - Prepare Request 2 - Request Resource Address the resource (URI) Example: http://localhost/ Find URI-Resolver for scheme in use Example: URI-Resolver for http URI Resolver Get address of resource (scheme-specific) Example URL-Resolver: Send request to address (Communication) Depends on scheme of URI, e.g. mailto, http Transmission Protocol defined by scheme Remember: allows for caching! Example: Use TCP, connect with localhost at port 80 and send: GET / HTTP/1.0 [CRLF] Host: localhost Resource: / © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 HTTP Request Methode URI © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme | 339 SS 2012 | 340 Request Resource – Demo HTTP Version Headers GET /default.asp HTTP/1.1 Accept: image/gif, image/x-bitmap, image/jpeg, */* Host: www.example.org User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT Scheme=http Transmission-Protocol: TCP/IP Scheme-specific-part = localhost Check scheme-specific-part for Host, retrieve IP using DNS IP Address for localhost: 127.0.0.1 Port: 80 (if not specified by scheme-specific-part) Blank line Data – (bei Methode GET keine Daten!) © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme URI: http://localhost/ URL-Resolver: Send Protocol Code SS 2012 34 | 341 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 342 3 - Handle Response HTTP Response Handle protocol, e.g. HTTP 302 Object moved, cookies Retrieve resource Example: Further action needed Response includes resource Status-Code HTTP Version Reason-Phrase (Verständliche Headers Beschreibung des Status-Codes) HTTP/1.1 200 OK Date: Sun, 21 Apr 1996 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0 Connection: keep-alive Content-Type: text/html Last-Modified: Thu, 18 Apr 1996 17:39:05 GMT Content-Length: 2543 Data <HTML> Some data... More and more data</HTML> © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 4 - Process Data of Resource 34 | 344 Und was passiert auf der Server-Seite Processing depends on user agent Browser Process header Check content-type Process resource data depending on MIME-Type E.g. render: text/html, text/text, image/gif Other User Agents Process header Process data E.g. WebService-Client: Process XML-Resource, wget/robots retrieving collections of Web-Pages © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme | 343 Offensichtlich wird die Anfrage entgegengenommen Nach dem Original Objekt gesucht (oder es wird generiert) Und ein Abbild des Originals wird dann als Ressource zurück geschickt Die Verarbeitung auf der Server Seite und weitere Aspekte werden in den Vorlesungen (Bachelor) EVS sowie (Master) PVS und AVS vertieft behandelt und können in dieser Vorlesung nur gestreift werden (weitere Beispiele in der Übung). SS 2012 | 345 Rechnernetze ► Kapitel 7: Anwendungssysteme © 2007-2012 Prof. Dr. Martin Gaedke ∙ 2012 Professur VSR ∙ SS Fakultät für Informatik ∙ TU | 346 Chemnitz SNMP (Simple Network Management Protocol) Managementobjekte (Managed Objects) SNMP dient der Verwaltung (dem Management) beliebiger Netzwerk-Ressourcen z.B Drucker, Brücken, Router, Endsysteme usw. Verwaltete Ressourcen integrieren SNMP-Agenten (Software-Prozess) Die Agenten verwalten die Managementinformationen der Komponente Managementobjekt (Managed Object) Modell (Abbild) einer/mehrerer Eigenschaft(en) einer Netzwerkressource Ein Agent verwaltet die Managementobjekte „seiner“ Ressource Bestandteile eines Managementobjekts im Internet: z.B. Anzahl eingegangener/verlorener Pakete Der Manager (Software-Prozess) dient der Kommunikation mit den Agenten Protokoll: SNMP (verwendet UDP) Basis der Kommunikation zwischen Manager und Agent: Managementobjekte ccitt(0) Agent Agent SNMP Manager SNMP Gesamtheit aller Managementobjekte verteilte, virtuelle Datenbank ... mib(1) Jedes Managementobjekt hat eindeutige Position im MIT Somit eindeutige Bezugnahme möglich system(1) ... © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 FTP (File Transfer Protocol) Dateizugriff wird NICHT unterstützt (Attribute ändern, löschen, etc.) FTP-Instanz auf TCP-Port 21 ASCII-Kommandos zur Ablaufsteuerung (z.B. GET, PUT) Client Datentyp (7-Bit-ASCII, EBCDIC, Image/Binary (Bitstrom), Local) Dateistrukturen (File (Bytestrom), Record, Page) Übertragungsmodus (Stream, Block, Compressed) Kontrollprozess Verbindungsaufbau mit Authentifizierung (Passworteingabe) Dateiübertragung (z.B. put, get) Operationen auf Dateisystem (z.B. cd, dir) Hilfefunktionen (z.B. Kommando-Auflistung inkl. Parameter) Weitere implementierungsabhängige Dienste möglich © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme Server Benutzerschnittstelle FTP-Dienste: | 348 Client-Server-Architektur Gesonderte Kontroll-/Datenverbindung FTP-Optionen: SS 2012 FTP: Ablauf Aufgabe: Dateiübertragung zwischen entfernten Rechnern sysDescr(1) © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme | 347 ... org(3) Management Information Tree (MIT) SNMP iso(1) Management Information Base (MIB) Agent Eindeutiger Name: z.B. iso.org.dod.internet.mgmt.mib.system.sysDescr Syntax: Verschiedene einfache Datentypen, wie z.B. Integer, String, Array Zugriffsrechte: z.B. read-only, read-write root Status: z.B: verpflichtend (mandatory), optional Datentransferprozess FTP-Kommandos Kontrollprozess FTP-Antworten Daten Datentransfer Dateisystem SS 2012 | 349 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme Dateisystem SS 2012 | 350 SNMPOperationen Manager Allgemeiner Aufbau einer SNMPPDU Agent Managementkommunikation Version GetRequest Get-NextRequest SetRequest GetResponse Trap SNMP Community Kommandoabhängiger PDU-Teil SNMP UDP UDP IP IP Zur Autorisierung genutzte Zeichenkette (im Klartext übertragen) Netzinfrastruktur (beispielsweise Ethernet) Versionsnummer von SNMP SS 2012 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme Kommandoabhängiger PDUTeil Error Index Zur Unterscheidung ausstehender Anfragen Erfolg der Anfrage: 0 – noError 1 – tooBig 2 – noSuchName 3 – badValue 4 – readOnly 5 – genErr Objekt- Objektname wert | 352 Heterogene Darstellungen Problem: Unterschiedliche Rechnersysteme besitzen verschiedene interne Darstellungen (Little/Big Endian, 16-/24-/32-Bit usw.) Konsequenz: Umkodieren der zu übermittelnden Daten ist erforderlich Austauschstandards notwendig PDU-Felder für das Abfragen/Setzen von Managementobjekten: PDU- Request Error Typ ID Status SS 2012 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme | 351 ... Objekt- Objektname wert Aufgaben: Behandeln der Darstellung (Syntax) von Informationen Bewahren der Bedeutung (Semantik) der Informationen Variable Bindings (Paare aus Objektname, Objektwert) lokale 24 Bit Integer Darstellung der Information Verweis auf fehlerbehaftetes Namen/Wert-Paar © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme 5 4 3 SS 2012 | 353 Transparente Übertragung nicht ausreichend Umkodierung 32 Bit Integer 5 4 3 • • • • • • © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme lokale Darstellung der Information SS 2012 | 354 ASN.1: Definition ASN.1: Übertragungssyntax ASN.1 (abstrakte Syntax-Notation eins) ist eine von der ISO genormte Beschreibungs-sprache zu darstellungsunabhängigen Spezifikation von Datentypen und Werten Elementare Datentypen: Strukturierte Datentypen: Basic Encoding Rules, BER (Übertragungssyntax): Bezeichner Länge Inhalt findet z.B. zur Definition von Managementobjekten bei SNMP Verwendung Bit 7 6 5 4 3 2 1 0 Boolean, Integer, Bitstring, Octetstring, IA5String, … Sequence: Set: Sequence OF: Set OF: Choice: Geordnete Liste von Datentypen (Record in PASCAL) Ungeordnete Menge von Datentypen Geordnete Liste von Elementen des gleichen Datentyps (Array in C) Ungeordnete Menge von Elementen des gleichen Datentyps Ungeordnete Menge von Datentypen, aus der einige Datentypen ausgewählt werden können (Union in C) Beispiel: Mitarbeiter ::= Set { Name IA5String, Alter Integer, Personalnr Integer } © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme SS 2012 | 355 Alle Prüfungsteilnehmer schreiben sich beim zentralen Prüfungsamt http://www.tu-chemnitz.de/verwaltung/studentenamt/zpa/ ein. Das ZPA gibt auch die Termine bekannt. Hilfsmittel Alle Unterlagen und Hilfsmittel zugelassen, die nicht mit elektrischem Strom arbeiten Scheine - Wer einen (benoteten oder unbenoteten) Schein haben will: Meldet sich bitte bei Dr. Jörg Anders http://vsr.informatik.tu-chemnitz.de/edu SS 2012 | 357 Tag-Nummer Datentyp 0..30 31: nächstes Byte gibt Tag an 0: einfach 1: strukturiert Beispiel: Integer Wert 5 Länge Inhalt Bezeichner 00 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 Universal Klasse einfach Prüfung © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme Typklasse 00: Universal 01: Application 10: Context Specific 11: Private 2 Integer 1 © 2007‐2012 Prof. Dr. Martin Gaedke ∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz Rechnernetze ► Kapitel 7: Anwendungssysteme 5 SS 2012 | 356