+\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 (URI) y Uniform Resource Locator (URL) y Identifikation von Ressourcen-Fragmenten y Hypertext Transfer Protocol (HTTP) y Interaktionen und Message Typen y Performance-Fragen und -Optimierungen y Caches und Proxies y Distributed Authoring and Versioning (WebDAV) y HTTP over SSL (HTTPS) als "sicheres HTTP" WWW (SS2001) - HTTP WWW (SS2001) - HTTP 2 1 ,GHQWLILHU YV/LQNV y Identifier y Identifikation unabhängig von Verbindungen y Identifier existieren auch ohne Referenzen <a href="http://www.ethz.ch/">ETH</a> y Links y enthalten (u.U. mehrere) Identifier y zusätzliche Semantik (z.B. Link-Typ) y HTML definiert sehr einfache Links (o XLink) WWW (SS2001) - HTTP 3 8QLYHUVDO5HVRXUFH,GHQWLILHU85, uri = scheme ":" scheme-specific-part y definiert in Internet RFC 2396 y URI schemes y definieren eine Art der Identifizierung y definieren Identifizierung innerhalb des schemes y URI scheme specific parts y Bedeutung hängt vom scheme ab y einige allgemeine Festlegungen zur Syntax y URI sind Locators (URL) oder Names (URN) WWW (SS2001) - HTTP WWW (SS2001) - HTTP 4 2 /RFDWRUVDQG1DPHV Uniform Resource Locator (URL) Uniform Resource Name (URN) Universal Resource Identifier (URI) "The name of a resource indicates what we seek, and an address indicates where it is." 5 WWW (SS2001) - HTTP 85,6\QWD[ y Sonderzeichen y werden durch das Prozentzeichen eingeleitet y http://www.ethz.ch/%25-Zeichen y Hierarchische Organisation y wird durch einen Slash gekennzeichnet y http://www.ethz.ch/info/telefon.html y Fragment-Identifizierung y durch ein Doppelkreuz gekennzeichnet y http://www.ethz.ch/index.html#address y Query Strings y mit einem Fragezeichen gekennzeichnet y Spaces werden durch ein Pluszeichen dargestellt y http://www.ethz.ch/telefon?erik+wilde WWW (SS2001) - HTTP WWW (SS2001) - HTTP 6 3 8QLIRUP5HVRXUFH/RFDWRU85/ y definiert in Internet RFCs 1738, 1808, 2368, 2384, und 2397 y erste Festlegung 1989/90 y Anforderungen an Identifier y Erweiterbarkeit (neue Zugriffsmethoden) y Komplettheit (flexibel genug) y Druckbarkeit (Austausch und Niederschrift) y Unterstützung mehrerer URL schemes y Implementierung verschiedener Protokolle y Trend zu integrierten Arbeitsumgebungen y ftp://ftp.ethz.ch/pub/hg.jpeg 7 WWW (SS2001) - HTTP 85/VFKHPHV y http (Hypertext Transfer Protocol) y Uebertragungsprotokoll des WWW y https (HTTP over SSL) y sichere Variante von HTTP y basiert auf Secure Sockets Layer (SSL) y mailto (electronic mail) y Mailadresse gemäss RFC 822 y Versenden mittels SMTP (RFC 821) y ftp (File Transfer Protocol) y File-Uebertragung gemäss RFC 959 y news (Usenet news) y Newsgroups oder Artikel (RFC 977) WWW (SS2001) - HTTP WWW (SS2001) - HTTP 8 4 85/VFKHPHVSHFLILFSDUW "//" [ user [ ":" password ] "@" ] host [ ":" port ] "/" url-path y spezifiziert Details für ein URL scheme y optionale Komponenten y user für eine Benutzerkennung y password für ein Passwort y port für einen vom Standard abweichenden Port y notwendige Komponenten y host als fully qualified host name (FQHN) y url-path als Adressierung auf dem Host 9 WWW (SS2001) - HTTP 1DFKWHLOHYRQ 85/V y y y y Abhängigkeit vom Rechner Abhängigkeit vom Namen des Rechners Abhängigkeit vom Server-Layout verbreitete Gründe für ungültige URLs y Aenderung des Namens auf dem Server y Aenderung des Server-Namens y Verschiebung auf einen anderen Server y naheliegende Lösung: Naming Service y eine zusätzliche Indirektion y Unabhängigkeit von Adressen (URLs) WWW (SS2001) - HTTP WWW (SS2001) - HTTP 10 5 )UDJPHQW,GHQWLIL]LHUXQJ y HTML erlaubt nur explizite Fragmente URL: http://www.ethz.ch/index.html#telefon <p><a name="telefon">Telefonnummern:</a> <p id="telefon">Telefonnummern: y Identifizierung auf unterschiedlichen Ebenen y Buchstaben, Elemente, markierte Elemente y Fragmente werden vom Client identifiziert y Uebertragung der kompletten Ressource y Lokalisierung des Fragments beim Client 11 WWW (SS2001) - HTTP ,QWHUQHW3URWRFRO6XLWH Application layer Transport layer HTTP TCP Internet layer Phys. Network layer WWW (SS2001) - HTTP WWW (SS2001) - HTTP FTP DNS UDP IP Ethernet ATM DECnet 12 6 9HUZHQGXQJYRQ +773 Browser 1. DNS request 2. DNS response DNS Server 3. HTTP request 4. HTTP response HTTP Server WWW (SS2001) - HTTP 13 6FKHPD HLQHU +773 ,QWHUDNWLRQ y Verbindungsaufbau y Aufbau TCP-Verbindung vom Client zum Server y normalerweise Port 80 des Servers y Request vom Client zum Server y Auswahl einer Methode y zusätzliche Parameter zur Methode y Response vom Server zum Client y Resultat in Form einen Statuscodes y zusätzliche Parameter zum Resultat y Verbindungsabbau y normalerweise Abbau der Verbindung y neue Versionen (ab HTTP/1.1) können die Verbindung länger offen lassen WWW (SS2001) - HTTP WWW (SS2001) - HTTP 14 7 %HLVSLHOIUHLQHQ +7735HTXHVW y TCP-IP Verbindung zu www.ethz.ch y Erstellen der Verbindung "von Hand" > telnet www.ethz.ch 80 GET / HTTP/1.1 Host: www.ethz.ch Accept-Language: en-US en de WWW (SS2001) - HTTP 15 %HLVSLHOIUHLQHQ +7735HVSRQVH y Akzeptieren der Verbindung vom Client y Interpretation des Requests HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Content-Location: http://www.ethz.ch/home_en.html Date: Mon, 02 Nov 1998 09:24:53 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Fri, 30 Oct 1998 07:55:15 GMT ETag: "74335a1da3be1:1b1a5" Content-Length: 4229 <!DOCTYPE... WWW (SS2001) - HTTP WWW (SS2001) - HTTP 16 8 +7730HVVDJHV y gehorchen einem allgemeinen Format y sind entweder Requests oder Responses message = start-line *message-header [ message body ] y start-line bestimmt die Bedeutung y message-headers enthält zusätzliche Information zur Message y message-body enthält Daten 17 WWW (SS2001) - HTTP +7735HTXHVW y Request vom Client zum Server Methode Request-URI HTTP/major.minor [Header] [Entity] y die Leerzeile muss vorhanden sein y minor-Versionen sind kompatibel, major-Versionen sind inkompatibel y Request meist ohne [Entity] y [Header] enthält unterschiedliche Header y General Header, Request Header, Entity Header WWW (SS2001) - HTTP WWW (SS2001) - HTTP 18 9 +7735HVSRQVH y Response vom Server zum Client HTTP/major.minor Statuscode Text [Header] [Entity] y y y y die Leerzeile muss vorhanden sein Server muss sich an Client anpassen Response meist mit [Entity] [Header] enthält unterschiedliche Header y General Header, Response Header, Entity Header 19 WWW (SS2001) - HTTP +773+HDGHU +lXILJNHLWHQ 1. 2. 3. 4. 5. 6. 7. 8. Header Field Name Frequency Content-Type 25960 Server 25951 Date 25679 Last-Modified 22353 Content-Length 20945 Accept-Range 9666 Connection 4780 ETag 4033 WWW (SS2001) - HTTP WWW (SS2001) - HTTP Percent 99.89% 99.86% 98.81% 86.01% 80.95% 37.19% 18.39% 15.52% 20 10 ,3EDVLHUWHYLUWXHOOH +RVWV 1. DNS request 2. DNS response 3. HTTP request 4. HTTP response 194.94.42.20 194.94.42.21 DNS Server HTTP Server www.vh1.ch 194.94.42.20 VH1 VH2 www.vh2.ch 194.94.42.21 21 WWW (SS2001) - HTTP 1LFKW,3EDVLHUWHYLUWXHOOH +RVWV 1. DNS request 2. DNS response 3. HTTP request 4. HTTP response 194.94.42.20 DNS Server HTTP Server www.vh1.ch 194.94.42.20 VH1 VH2 www.vh2.ch 194.94.42.20 WWW (SS2001) - HTTP WWW (SS2001) - HTTP 22 11 +7733HUIRUPDQFH3UREOHPH y eine TCP Verbindung pro URL y viele teure Verbindungserstellungen y meist kurze Dokumente werden übertragen y viele alte Verbindungskontrollblöcke y keine Flow Control für TCP Open und Close y bisher: Oeffnen vieler simultaner Verbindungen y möglicherweise Congestion auf Links y keine virtuellen Server möglich y individuelle IP-Adresse pro Server erzeugt u.U. Routing-Probleme y Caching ist nur sehr einfach und fehlerhaft implementiert 23 WWW (SS2001) - HTTP 3HUVLVWHQW&RQQHFWLRQV Client open Server Client Server open close open close open close close WWW (SS2001) - HTTP WWW (SS2001) - HTTP 24 12 3LSHOLQLQJ Client open Server Client Server open close close 25 WWW (SS2001) - HTTP +773 0HWKRGHQ y OPTIONS fragt Fähigkeiten des Servers ab y GET holt eine Ressource vom Server y HEAD liefert nur die Metainformationen zu einer Ressource y PUT speichert eine Ressource y POST liefert eine Menge von Daten an eine Ressource (CGI-Script) y DELETE löscht eine Ressource y TRACE ermöglicht das Verfolgen der Bearbeitung von Requests WWW (SS2001) - HTTP WWW (SS2001) - HTTP 26 13 +7733UR[\ Browser 1. DNS request 2. DNS response DNS Server 3. HTTP request 6. HTTP response HTTP Proxy 4. HTTP request 5. HTTP response HTTP Server WWW (SS2001) - HTTP 27 $XIJDEHQHLQHV 3UR[\6HUYHUV y Caching für eine Menge von Benutzern y typischerweise Plazierung vor einem Bottleneck y ISPs können gut profitieren von Caches y Nachteil: Cache muss explizit konfiguriert werden y Plazierung in einem Firewall (Teil des Firewall) y y y y Entscheidungen auf Applikationslevel möglich Weiterleiten/Akzeptieren unbedenklicher Requests ermöglichen lückenlose Kontrolle der Aktivitäten aus Datenschutzsicht bedenklich y Konfiguration eines Proxy sehr einfach y aber: Cache-Konfiguration ständig überprüfen WWW (SS2001) - HTTP WWW (SS2001) - HTTP 28 14 :HE'$9 y HTTP kann zum Speichern verwendet werden y PUT Methode dient zum Speichern einer Ressource y auf nahzu allen Servern ausgeschaltet y Problem des verteilten Zugriffs auf Ressourcen y Distributed Authoring and Versioning (WebDAV) y y y y löst das Problem des verteilten Zugriffs eine Erweiterung von HTTP implementiert von Microsoft soll proprietäre Lösungen ersetzen (Interoperabilität) y spezifiziert in RFC 2518 (2/99) 29 WWW (SS2001) - HTTP :HE'$96]HQDULR HTTP Browser File System HTTP/1.1 Browser with Editor Document Management System HTTP and WebDAV WebDAV Extensions Word Processor Database HTTP and WebDAV Protocol Engines Persistent Storage HTTP/WebDAV Server WWW (SS2001) - HTTP WWW (SS2001) - HTTP 30 15 6HFXUH6RFNHWV/D\HU66/ y z.Z. weitestverbreitete Sicherheitstechnologie y Web-Server akzeptiert TCP/IP und TCP/IP über SSL Verbindungen y Kennzeichnung sicherer Dokumente mit dem https: URL Prefix y Standard-Verbindungen auf Port 80 y SSL-Verbindungen auf Port 443 y aktuelle Version ist SSL3 (Verbesserungen gegenüber SSL2, mehr Algorithmen) y Internet Standardisierung als Transport Layer Security (TLS) 31 WWW (SS2001) - HTTP ,QWHUQHW3URWRFRO6XLWH Application HTTP Security Transport WWW (SS2001) - HTTP WWW (SS2001) - HTTP SMTP SSL/TLS TCP Internet Phys. Network FTP UDP IP Ethernet ATM DECnet 32 16 =XVDPPHQIDVVXQJ y Ressourcenidentifikation im WWW y URI als allgemeiner Mechanismus y URL als weitverbreiteter Mechanismus y URL Schemes für verschiedene Dienste y Ressourcenübertragung im WWW y y y y HTTP als Client-Server-Protokoll Message Typen von HTTP Performance von HTTP Caches und Proxies y WebDAV für verteilten Schreibzugriff y HTTPS als sichere Anwendung von HTTP WWW (SS2001) - HTTP WWW (SS2001) - HTTP 33 17