Hypertext Transfer Protocol (HTTP) Übersicht

Werbung
+\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
%HLVSLHOIUHLQHQ +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
%HLVSLHOIUHLQHQ +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
Herunterladen