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