Das WWW-Anwendungsprotokoll: HTTP Beispiel einer

Werbung
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>
© 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
Zugehörige Unterlagen
Herunterladen