!"# $ % Internet Protokolle: HTTP 1/38 1
Themenübersicht Schichtenmodell Gopher /FTP Statistik URL Einleitung Anwendungsablauf Beispiel mit Telnet Request, Response Anfragemethoden header Negotiation Proxyserver Caching Status Code Beispiele Multiconnecting/ Performance Probleme Persistent Connection Zusammenfassung Quellen Internet Protokolle: HTTP 2
$ &&& application http http-protokoll http transport TCP TCP-Protokoll TCP network IP IP-Protokoll IP link Ethernet Ethernet Rechner 1 Rechner 2 Internet Protokolle: HTTP 3
Gopher (RFC 1436) Ein System im Internet zur menügesteuerten Suche von Informationen Geringfügig älter als HTTP Aus Sicht der Netzwerkarbeit vergleichbar Port 70 Server und Clients arbeiten mit ASCII HTTP Gewinner Häufig Proxy nötig, um auf Gopher-Server zuzugreifen Internet Protokolle: HTTP 4
FTP Entstehung um 1971 Kommunikation zwischen FTP-Client und FTP- Server über zwei Verbindungen Datenkanal und Steuerkanal über TCP- Verbindung Keine eigene Fehlererkennung => schnell Umständlich: viele Kommandos Hält die Verbindung wären der gesamten Übertragung aufrecht Internet Protokolle: HTTP 5
Statistik: Wachstumstabelle HTTP Internet Protokolle: HTTP 6
Uniform Resource Locator (URL) Schema eines http URLs: http:// hostname [:port]/ path[:parameters] hostname: gibt Adresse des Computers an, auf welchem der Server arbeitet :port: bei http der well known port 80 path: Identifikation des Dokuments auf dem Server :parameters: gibt zusätzliche Parameter zum Pfad vom Client an Internet Protokolle: HTTP 7
Uniform Resource Locator (URL) es gibt zwei Arten von URLs: absolute und relative Form eines URL Absolute Form: http://www.techfak.uni-bielefeld.de Relative Form: /NWI/ => http://www.techfak.uni-bielefeld.de/nwi/ Internet Protokolle: HTTP 8
Was ist HTTP und worin besteht seine Aufgabe? ein einfaches Textprotokoll Entstehung 1990 wurde für Nutzung im Web entwickelt regelt die erlaubten Anfragen und Antworten ist ein ASCII-Protokoll nutzt TCP-Verbindung Aktuelle Version HTTP/1.1 Internet Protokolle: HTTP 9
Anwendungsablauf: 1. Client errichtet TCP-Verbindung zum Server 2. Client stellt Anfrage an den Server 3. Client ließt die Antworten des Servers 4. Der Server zeigt das Ende seiner Antwort an, indem er die Verbindung unterbricht Internet Protokolle: HTTP 10
Kommunikation von Client und Server Web- hypertext link Web- Web- server server server TCP port 80 TCP port 80 TCP port 80 TCP Verbindungen Webclient (browser) Internet Protokolle: HTTP 11
Einfaches Szenario zum holen einer Web-Page Internet Protokolle: HTTP 12
Nachrichtentyp 1: Request Form: Request-Zeile headers (0 oder mehr) <Leerzeile> body Internet Protokolle: HTTP 13
Die Request-Zeile Methodenname Request-URL Protokollversion CRLF z.b.: GET http://www.w3.org/pub/www/theproject.html HTTP/1.1 Internet Protokolle: HTTP 14
Einfache und volle Anfrage Einfache Anfrage: In der GET-Zeile wird keine Protokollversion genannt Volle Anfrage: Die Protokollversion wird genannt Internet Protokolle: HTTP 15
Nachrichtentyp 2: Response Form: Status-Zeile headers (0 oder mehr) <Leerzeile> body Internet Protokolle: HTTP 16
Die Status-Zeile Protokollversion Dreistelliger Status-Code Textphrase CRLF Internet Protokolle: HTTP 17
Integrierte Anfragemethoden Methode GET HEAD PUT POST DELETE OPTIONS TRACE Beschreibung Anfragen zum lesen einer Web-Page Anfragen zum Lesen des Headers einer Web-Page Anfragen zum Speichern einer Web-Page Anhängen einer benannten Ressource Entfernen einer Web-Page Clientseitiger Befehl zur Übergabe von Informationen über die Kommunikation zwischen Client und Server Dieser Befehl fungiert als Echo-Befehl Internet Protokolle: HTTP 18
Header jede HTTP - Übertragung enthält einen header, eine Leerzeile, und die angeforderte Datei bzw. Seite jede Zeile in dem header enthält ein keyword, einen Doppelpunkt und die Information Internet Protokolle: HTTP 19
Header Response: Content Length Content Language Content Encoding Content Type Request: Accept Language Accept Encoding If Modified Since Max Forward gibt die Größe der Datei in Byte an gibt die Sprache der Datei an Kodierung der Datei Art der Datei geforderte Sprache für die Datei geforderte Kodierung für die Datei holt Datei nur dann vom Server, wenn sie seit dem letzten Aufruf geändert wurde Anzahl der Proxies zwischen Browser und Server Internet Protokolle: HTTP 20
Header Beispiel für einen Header: Content Length: 34 Content Language: en Content Encoding: ASCII Internet Protokolle: HTTP 21
Negotiation HTTP nutzt header, um die Kapazitäten zwischen Client und Server zu verhandeln Verhandlungskapazitäten fallen sehr weiträumig aus es gibt zwei Arten von Negotiations: Server driven negotiation Agent driven negotiation Internet Protokolle: HTTP 22
Negotiation Server driven negotiation: beginnt mit einem request vom browser browser gibt die bevorzugten Eigenschaften der angeforderten Datei mit der URL an Server sucht die entsprechende Datei heraus Beispiel: Accept: text/html, text/plain; q=0.5, text/x-dvi; q=0.8 q gibt preference level an Internet Protokolle: HTTP 23
Negotiation Agent driven negotiation: Browser geht in zwei Schritten vor: Anfrage der Möglichkeiten bei dem Server Server gibt Auswahl an Browser wählt gewünschte Option aus und sendet zweite Anfrage - Nachteil: zwei Serveraktionen - Vorteil: Browser hat volle Kontrolle über die Wahl Internet Protokolle: HTTP 24
Vergleich zwischen FTP fähigem Browser und einem der einen Proxy-Server nutzt HTTP Browser FTP-Anfrage FTP-Antwort FTP- Server HTTP HTTP-Anfrage FTP- Proxy- FTP-Anfrage Browser HTTP-Antwort Server FTP-Antwort Server Internet Protokolle: HTTP 25
Caching Ziel: Verbesserung der Effizienz unnötiger Netzwerktransfer soll eliminiert werden Caching = Speichern der Seiten durch Browser bzw. Proxy Internet Protokolle: HTTP 26
Caching Frage: Wie lange soll eine Seite im Cache gespeichert werden? -HTTP gibt dem Server zwei Möglichkeiten den Cache zu kontrollieren: der Server kann bei seiner Antwort festlegen, ob und von wem eine Seite gespeichert werden darf und wie lang ihre Lebensdauer ist der Browser kann mit einem header das max. Alter einer Seite auf Null setzen wodurch alle im Cache befindlichen Seiten außer Frage geraten Internet Protokolle: HTTP 27
Antwort-Code des Servers Code 1yz 200 201 202 204 301 302 304 400 401 403 404 500 501 502 503 Erklärung Reine Information Ok, Anfrage war erfolgreich Ok, neue Fähigkeiten eingerichtet Anfrage wurde akzeptiert-arbeitschritt noch nicht abgeschlossen Ok, aber noch nicht bereit zu antworten Das von ihnen angefragte Objekt besitzt (dauerhaft) eine neue URL Das von ihnen angefragte Objekt ist momentan unter einer anderen URL zu finden Die Datei wurde nicht aktualisiert. Falsche Anfrage. Unberechtigte Anfrage. Verboten, da nicht befugt. Nicht gefunden. Interner Server Fehler. Nicht implementiert. Fehlerhafter gateway. Service zur Zeit nicht verfügbar. Internet Protokolle: HTTP 28
Es folgen zwei Beispiele zur Client Server -Kommunikation Internet Protokolle: HTTP 29
Internet Protokolle: HTTP 30
Internet Protokolle: HTTP 31
Zeitleiste von acht TCP Verbindungen zu einer Homepage zum laden von sieben GIF images 00 port 1114 06 1118 1115 1116 1117 1121 1119 1120 12 Zeit in Sekunden Internet Protokolle: HTTP 32
Hilft die Verwendung mehrerer gleichzeitiger Verbindungen dem Client, die Übertragungszeit zu reduzieren? Gleichzeitige Verbindungen 1 2 3 4 5 6 7 Gesamtzeit in Sekunden 14,5 11,4 10,5 10,2 10,2 10,2 10,2 Internet Protokolle: HTTP 33
Persistent Connection Verwendung nur noch einer beständigen TCP-Verbindung Zwischen mehreren Anfragen und Antworten wird die Verbindung nicht mehr unterbrochen Verbindungsabbruch durch Client oder Server Optimierung durch pipelining möglich Internet Protokolle: HTTP 34
Zusammenfassung: HTTP ein einfaches Protokoll Client baut TCP-Verbindung auf und stellt Anfrage, Server antwortet und beendet Verbindung Mehrere Methoden die auf Objekt angewendet werden können Verwendung von headern für weiter Informationen Hypertext links ASCII-Code Summe an übertragenen Daten gering Performance Problem Internet Protokolle: HTTP 35
Quellenangaben und RFCS TCP /IP illustrated W. Richard Stevens Addison-Wesley 1994-1996 Internetworking with TCP / IP Couglas Comer, David Stevens Prentice Hall, 2000 Computer Networks Andrew S. Tannenbaum Prentice Hall 1996 Wie funktioniert das Internet Balance TextArt GbR Planet Medien AG, CH-Zug RFCs: 2774, 2616 (Version HTTP/1.1), 2617, 2145, 2109, 2069, 2068, 1945, 822 (MIME- Nachricht), 1738 (URL), 1808 (URL), 1436 (Gopher) Internet Protokolle: HTTP 36
Connection closed by foreign host. Das war's, wir wünschen schöne Semesterferien! Internet Protokolle: HTTP 37