HTTP - Hypertext Transfer Protocol

Transcrição

HTTP - Hypertext Transfer Protocol
HTTP - Hypertext Transfer Protocol
Martina Kannen
Folie 1
Zum Inhalt
1. HTTP im Überblick
2. Kommunikationsmodell
3. HTTP-Nachrichten
Martina Kannen
Folie 2
1
HTTP im Überblick
Einordnung von HTTP in die TCP/IP-Architektur
Anwendungsschicht 5-7
FTP
Transportschicht 4
HTTP
SNMP
DHCP
UDP
TCP
Netzwerkschicht 3
IP
Ethernet
Leitungsschicht 2
Bitübertragungsschicht 1
Token Ring
10Base-T
Martina Kannen
Folie 3
HTTP im Überblick
Geschichte
1991: Tim Berners-Lee (CERN) entwickelte HTTP
1991: HTTP 0.9, W3C, Übertragung von HTML-Dokumente vom
Server zum Client
1992: HTTP 1.0, Übertragung beliebiger Dateiformate
zwischen Client und Server.
1996: RFC 1945, HTTP 1.0
1997: HTTP 1.1, RFC 2068
Aktuelle Version HTTP 1.1, RFC 2616
Martina Kannen
Folie 4
2
HTTP im Überblick
Designziele
1. Einfachheit: Das Protokoll soll nur wenige
Ressourcen beanspruchen.
2. Geschwindigkeit: Das Protokoll soll so schnell wie
möglich sein.
Martina Kannen
Folie 5
Kommunikationsmodell
Kommunikationsablauf HTTP 1.0
Client
Server
1. Aufbau der TCP-Ve
rbindung
2. HTTP-Request
3. HTTP-Response
P-Verbindung
4. Abbau der TC
Martina Kannen
Folie 6
3
Kommunikationsmodell
Problembetrachtung HTTP 1.0
Probleme
-
TCP-Verbindungsaufbau und- abbau
-
TCP Slow-Start
Auswirkungen
-
Netzbelastung
-
Erhöhte Antwortzeiten
Martina Kannen
Folie 7
Kommunikationsmodell
Mögliche Lösungsansätze
•
Persistent HTTP (P-HTTP)
•
Transaction TCP (T/TCP)
•
HTTP over multiple, concurrent TCP Connections
•
HTTP over UDP-based Protocols
Martina Kannen
Folie 8
4
Kommunikationsmodell
Transaction TCP
Client
Server
1. SYN, request, FIN
2. SYN, ACK(FIN), reply, FIN
3. ACK (FIN)
Tanebaum, Andrew: Computernetzwerke. Pearson Studium, 2003.
Martina Kannen
Folie 9
Kommunikationsmodell
Persistent HTTP 1.1
Client
Server
1. Aufbau der TCP-Ve
rbindung
2. HTTP-Request
3. HTTP-Response
4. HTTP-Request
5. HTTP-Response
6. Abbau der TCP-Verbindung
Martina Kannen
Folie 10
5
Kommunikationsmodell
Performanz-Betrachtung
HTTP 1.0
HTTP 1.1 Persistent
HTTP Pipelining
6
1
1
40
1
1
Pakete vom Client
zum Server
226
70
25
Pakete vom Server
zum Client
271
153
58
Pakete insgesamt
497
223
83
Zeit insgesamt
(in Sekunden)
1,85
4,13
3,02
Max. gleichzeitige
Verbindungen
Anzahl verwendeter
Sockets
Dippel Oliver: Quantitative Untersuchungen im Internet –Optimierungsmethoden für Internet-Protokolle.
Dissertation, Fachbereich Mathematik und Informatik der Philipps-Universität, Marburg, 2000.
Martina Kannen
Folie 11
Kommunikationsmodell
Performanz-Betrachtung ohne Nagle Algorithmus
Pakete insgesamt
Transfervolumen in
Bytes
Zeit insgesamt
(in Sekunden)
HTTP 1.0
HTTP 1.1 Persistent
HTTP Pipelining
510,2
281
181,8
216.289
191.843
191.551
0,97
1,25
0,68
Dippel Oliver: Quantitative Untersuchungen im Internet –Optimierungsmethoden für Internet-Protokolle.
Dissertation, Fachbereich Mathematik und Informatik der Philipps-Universität, Marburg, 2000.
Martina Kannen
Folie 12
6
Kommunikationsmodell
Eigenschaften des HTTP-Protokoll
-
Basiert auf TCP
-
Persistente Verbindungen
-
Request-/ Response-Abfolge
-
Bidirektionaler Datentransfer
-
Zustandslos
-
Nicht-sitzungsorientiert
Martina Kannen
Folie 13
Kommunikationsmodell
Beispiel Verkaufsszenario
Benutzer
Browser
Identifikation
Server
Identifikation
Formular
Auswahl
Auswahl
Bestätigung
Zahlungsinformatio
n
Bestellung
Martina Kannen
Wer bestellt hier?
Folie 14
7
Kommunikationsmodell
Cookie-Mechanismus
Client
Server
Request
Response
e)
(Set-Cooki
Erstellen des Cookies
Speichern des Cookies
Request (C
ookie)
Auswerten des Cookies
Response
Martina Kannen
Folie 15
HTTP-Nachrichten
Aufbau von HTTP-Nachrichten
generic message =
startline
*message-header
CRLF
[message-body]
start-line =
request-line | status-line
{null oder mehrere Header-Felder}
{je nach Request oder Response}
Request
Response
Methode Request-URI HTTP-Version
[Header]
HTTP-Version Statuscode Text
[Header]
[Entity]
[Entity]
Martina Kannen
Folie 16
8
HTTP-Nachrichten
Übersicht Methoden
Methoden
Sicher
Idempotent
CONNECT
optional
DELETE
X
optional
GET
X
X
mandatory
HEAD
X
X
mandatory
X
optional
OPTIONS
POST
Martina Kannen
Implementierung
optional
PUT
X
optional
TRACE
X
optional
Wilde, Eric: World Wide Web, Technische Grundlagen: Springer
1999.
Folie 17
HTTP-Nachrichten
Header
Header
Request Header
Generic Header
Response Header
User-Agent:
Mozilla/0.9
Date: Wed, 07 Jun 2003
9:21:44 GMT
Server: Apache/1.3.26 (Unix)
Martina Kannen
Debian GNU/Linux PHP/4.1.2
Folie 18
9
HTTP-Nachrichten
Statusmeldungen
Informational (1xx): 100 Continue
Successfull (2xx):
200 OK
Redirection (3xx)
302 Found
Client Error (4xx)
400 Bad Request
Server Error (5xx)
500 Internal Server Error
Martina Kannen
Folie 19
Literatur
Badach, Anatol, Rieger, Sebastian, Schmauch Matthias: Web-Technologien –
Architekturen, Konzepte, Trends. Hanser Verlag 2003.
Berners-Lee, Tim: The World Wide Web: A very short personal history.
http://www.w3.org/People/Berners-Lee/ShortHistory.html
Comer, Douglas E: TCP/ IP –Konzepte, Protokolle und Architekturen. mitp-Verlag
2003.
Dippel Oliver: Quantitative Untersuchungen im Internet - Optimierungsmethoden für
Internet-Protokolle. Dissertation, Fachbereich Mathematik und Informatik der
Philipps-Universität, Marburg, 2000.
Fielding R., Gettys, j., Mogul J.C., Masinter L., Leach P. Frystyk, H., Berners-Lee, T.:
Hypertext Transfer Protocol – HTTP 1.1, RFC 2616, 1999.
Heidemann, John, Obraczka, Katia, Touch, Joe: Modeling the Performance of HTTP
Over Several Transport Protocols. IEEE/ ACM Transactions on Networking, 5(5),
1997.
Martina Kannen
Folie 20
10
Literatur
Nielsen, Hendrik Frystyk, Gettys, Jim, Baird-Smith, Anselm, Prud'hommeaux, Eric,
Håkon Wium Lie, Lilley, Chris: Network Performance Effects of HTTP/1.1,
CSS1, and PNG, W3C, NOTE 24-June 1997.
Spero, Simon E: Analysis of HTTP Performance Problems.
http://www.w3.org/Protocols/HTTP/1.0/HTTPPerformance.html, Juli 1994.
Tanebaum, Andrew: Computernetzwerke. Pearson Studium, 2003.
Wilde, Eric:World Wide Web, Technische Grundlagen: Springer 1999.
Martina Kannen
Folie 21
11