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 einen eindeutigen Namen verfügen.
Protokollschichten im Internet: FTP NTP... Transportschicht Internetschicht Ethernet FDDI ATM... Bemerkungen: (i) ATM verfügt über ein eigenes Schichtenmodell, hier ist nur seine Nutzung im Rahmen von IP over ATM gemeint. (ii) Zur Internetschicht gehören auch die Routingprotokolle. (iii) Das TC-Protokoll der Transportschicht garantiert einen verläßlichen Ende-zu-Ende-Transportdienst. Grundlegende Funktionsweise von : ( = Hypertext Transfer Protocol) Client : GET dokument.html CRLF : Das angeforderte Dokument oder eine Fehlernachricht. Bemerkungen: (i) Das HTT-Protokoll nutzt ein einfaches Client- -Modell. (ii) Für das obige Szenario wird angenommen, daß der Klient eine TCP-Verbindung zu dem, auf dem er das gewünschte Dokument vermutet, aufgebaut hat. (iii) Nach der des s erfolgt unmittelbar der Abbau der TCP-Verbindung. (iv) Das HTT-Protokoll ist zustandslos.
Verwaltung von n: Jede sollte über einen eindeutigen Namen und zu jeder Zeit über eine eindeutige Adresse verfügen. Den eindeutigen Namen nennt man Universal Resource Name (URN), die eindeutige Adresse Universal Resource Locator (URL), als Oberbegriff für beide wird die Bezeichnung Universal Resource Identifier benutzt. Die Adresse ist änderbar, der Name nicht. Eigenschaften eines Namens: Ortsunabhängigkeit, globale Eindeutigkeit, Dauerhaftigkeit, Erweiterbarkeit, Darstellbarkeit (Druckbarkeit). Es sollte ein allgemeiner Dienst zur Verfügung stehen, der zu jedem nnamen seine gegenwärtige Adresse bestimmt. Ein Beispiel hierfür ist der Domain Name Service. Syntax für URI, definiert im RFC 2396: URI ::= Schema ":" Spezifikum Das Schema bestimmt die Bedeutung des Spezifikums. Häufig gibt der erste Teil des Spezifikums vor, wie der Rest zu interpretieren ist. Beispiele: ftp://ftp.is.co.za/rfc/rfc1808.txt -- FTP Schema für Dateitransferdienste http://www.math.uio.no/faq/compression-faq/part1.html -- Schema mailto:mduerst@ifi.unizh.ch -- Mailto Schema für Email-Adressen news:comp.infosystems.www.servers.unix -- News Schema für USENET news groups and articles telnet://melvyl.ucop.edu/ -- Telnet Schema für interaktive Dienste Syntax für URL: URL ::= "//"[Benutzer [":" Kennwort] "@"] Host [":" Port] "/" Zugriffspfad
Nachrichten: Das Protokoll /1.1 wird in den RFCs 2616 und 2617 beschrieben. Auszug aus der Syntax: generic-message ::= start-line *message-header CRLF [ message-body] start-line ::= request-line status-line message-header ::= field-name ":" [ field-value ] field-name ::= token field-value ::= *( field-content LWS ) field-content ::= <the OCTETs making up the fieldvalue and consisting of either *TEXT or combinations of token, separators, and quoted-string> message-body ::= entity-body <entity-body encoded as per Transfer- Encoding> request = request-line *(( general-header request-header entity-header ) CRLF) CRLF [ message-body ] general-header ::= Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade Via Warning request-line ::= method SP Request-URI SP -Version CRLF method ::= "OPTIONS" "GET" "HEAD" "POST" "PUT" "DELETE" "TRACE" "CONNECT" extension-method extension-method ::= token Request-URI ::= "*" absoluteuri abs_path authority request-header ::= Accept Accept-Charset Accept-Encoding Accept-Language Authorization Expect From
Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Max-Forwards Proxy-Authorization Range Referer TE User-Agent response ::= status-line *(( general-header response-header entity-header ) CRLF) CRLF [ message-body ] status-line ::= -Version SP Status-Code SP Reason-Phrase CRLF response-header ::= Accept-Ranges Age ETag Location Proxy-Authenticate Retry-After Vary WWW-Authenticate Nachteile des einfachen Schemas: Client (i) Häufiger Verbindungsaufbau und -abbau. Gegensteuerung: Einführung dauerhafter Verbindungen. "Chunked Encoding": Chunk-Größe Chunk-Daten... Chunk-Größe Größe 0 Nachspann (ii) Nur ein pro Internetadresse. Gegensteuerung: Einführung virtueller Host. Das Host-Feld in den Nachrichtenköpfen gestattet es, zwischen mehreren n auf einem Rechner zu unterscheiden; es ist in http/1.1 verbindlich.
Proxy: Man kennt drei Arten von Zwischenstationen, den Proxy, den Gateway und den Tunnel. Beim Gateway muß der Klient nicht wissen, daß er nicht mit dem eigentlichen kommuniziert. Der Tunnel darf keine Änderungen an den ausgetauschten Nachrichten vornehmen. Einsatzgründe für Proxy: Zugriffskontrolle, Firewall, Cache, -Beschleuniger, Umcodierer, Anonymisierer. Client Zwischenstation Origin Cache: Lage eines Cache: Client Cache Client Cache Client Cache Hauptproblem eines Cache: Die Aktualität der zwischengespeicherten Daten. Über Alterungsmaßnahmen und Validierungsmodelle, wobei man zwischen starker und schwacher Validierung unterscheidet, versucht man das Aktualitätsproblem in den Griff zu bekommen.
Authentifizierung: Die Authentifizierung innerhalb von http wird im RFC 2617 beschrieben. Bei der Zugriffskontrolle auf n ist zwischen drei Begriffen, der Identifikation, der Authentifizierung und der Autorisierung zu unterscheiden. Für den Schutz der n kennt man mehrere Schutzbereiche, der fordert vom Klienten die Angabe des Schutzbereichs, der Identifikation und des Paßworts. Diese werden in der Basisversion ungeschützt als Klartext übertragen. Damit die Überprüfung der Berechtigungen nicht im Klartext erfolgt, bedient sich /1.1 eines Challenge- Response-Protokolls. Der sendet an den Klienten den Schutzbereich und ein Nonce. Der Klient antwortet mit dem MD5-Hashwert einer Zusammenfassung von Benutzername, Paßwort, Schutzbereich, Nonce, - Methode und angeforderte URI. Dies verhindert eine Wiederverwendung der Berechtigungsnachricht. Es sei daran erinnert, daß das angeforderte Dokument weiterhin "ungeschützt" übertragen wird. Sicherheit: Es existieren zwei Möglichkeiten, die Kommunikation zwischen Klienten und zu sichern, die Verwendung einer sicheren Transportarchitektur oder die Verwendung eines sicheren Protokolls auf Anwendungsebene. Benutzt wird over SSL ("Secure Sockets Layer"). Eigenschaften des SSL-Protokolls: Kryptographische Sicherheit, Interoperabilität, Erweiterbarkeit, Verbindungssicherheit. Bild: SSL TCP/IP