Folien
Transcription
Folien
Übersicht 1. Einleitung 2. Funktionsweise 3. HTTP-Methoden 4. HTTP-Headers 5. Status Codes 6. Sicherheit Referat zu HTTP - Internet-Protokolle - WS 2012/2013 - Uni Bielefeld - Dominik Theisel 1.1 Was ist HTTP? ● HTTP = HyperText Transfer Protocol ● Standard-Übertragungsprotokoll im WWW → http:// ● 1989 erfunden von Tim Berners-Lee, Roy Fielding und anderen ● zustandsloses Request/Response-Protokoll ● gehört zur Anwendungsschicht 1. Einleitung 1.2 Entwicklung ● ● HTTP/0.9 ● 1991 veröffentlicht ● mittlerweile veraltet HTTP/1.0 ● ● 1996 veröffentlicht HTTP/1.1 ● 1999 veröffentlicht ● aktueller Standard 1. Einleitung 1.3 Zukunft ● HTTP/2.0 bzw. HTTP/NG ● NG = Next Generation ● noch in der Entwicklung ● wird wohl größtenteils auf SPDY von Google basieren 1. Einleitung 2.1.1 Umgebung ● Client: Browser, Telnet, … ● Server: Webserver (z.B. Apache) 2. Funktionsweise → 2.1 Client/Server-Kommunikation 2.1.2 Request/Response ● Simple Request/Response ● nur „einfache“ Anfrage und Antwort ● ● GET /index.html → HTML-Quellcode Full Request/Response ● mehrzeilige Anfragen möglich ● unterstützt weitere Methoden ● Anfrage: Start-Line, Header, (Message Body) ● Antwort: Response-Line, Header, Message Body 2. Funktionsweise → 2.1 Client/Server-Kommunikation 2. Funktionsweise → 2.1 Client/Server-Kommunikation → 2.1.2 Request/Response 3. HTTP-Methoden 3.1 Allgemeines ● für Nutzung im WWW entwickelt ● erweiterbar ● Großschreibung ist Pflicht 3. HTTP-Methoden 3. HTTP-Methoden 3.2 GET ● gebräuchlichste Methode ● Server wird aufgefordert, bestimmte Daten zu senden 3.3 POST ● Sendet Daten an Server ● Daten kommen in den Message Body 3. HTTP-Methoden 3. HTTP-Methoden 3.4 HEAD ● ähnelt GET ● Client erhält nur Meta-Informationen vom Server 3.5 PUT ● sendet Daten an Server (Upload) ● meist aus Sicherheitsgründen deaktiviert 3. HTTP-Methoden 3. HTTP-Methoden 3.6 DELETE ● löscht angegebene Daten auf Server ● Gegenstück zu PUT 3.7 CONNECT ● Tunnelverbindung zwischen Client und Server ● wird verwendet, um sichere Verbindungen aufzubauen 3. HTTP-Methoden 4. HTTP-Headers ● beinhalten zusätzliche Informationen ● Headername: Wert ● insgesamt ca. 40 Headers 4. HTTP-Headers 4. HTTP-Headers 4.1 Content-Type ● bezeichnet den übermittelten Datentyp ● z.B.: text/plain, text/html, image/gif, image/jpeg, ... 4.2 Content-Length ● bezeichnet die Länge der übermittelten Daten ● Angabe in Bytes 4. HTTP-Headers 4. HTTP-Headers 4.3 Content-Encoding ● teilt dem Client das Codierungsverfahren mit ● z.B.: chunked, compress, deflate, gzip 4.4 Expires ● übergibt Datum, an dem die angeforderten Daten veraltet sind oder gelöscht werden 4. HTTP-Headers 4. HTTP-Headers 4.5 User-Agent ● z.B. Browser(-Version) des Clients 4.6 Date ● Nachrichtenzeitpunkt (Datum) 4.7 Connection ● ermöglicht persistente bzw. nicht-persistente Verbindung ● Werte: keep-alive, close 4. HTTP-Headers 5. Status Codes ● in Antwort zu finden ● drücken „Erfolge“ oder „Fehlschläge“ aus ● dreistellige Ziffern ● nach Anfangsziffer unterteilt 5. Status Codes 5. Status Codes 5.1 1xx Informationen 5.2 2xx Erfolgreiche Operationen z.B. 200 OK ● 5.3 3xx Umleitung 5.4 4xx Client-Fehler z.B. 400 Bad Request, 403 Forbidden, 404 Not found ● 5.4 5xx Server-Fehler ● 5. Status Codes z.B. 500 Internal Server Error, 503 Service Unavailable 6. Sicherheit ● HTTP ist standardmäßig unsicher! 6.1 Authentication ● Server teilt Client per Header mit... ● für welchen Bereich er sich anmelden muss ● Nach welchem Schema er sich anmelden muss (i.d.R. Benutzername:Passwort) 6. Sicherheit 6. Sicherheit 6.1.1 Basic Authentication ● nur unzureichend verschlüsselte Benutzerdaten (base64) ● eigentliche Nachricht wird nicht verschlüsselt 6.1.1 Digest Authentication ● Weiterentwicklung der Basic-Variante ● Passwörter werden nie in Klartext übermittelt ● Client sendet nur eine Kodierung seines Passworts und einen speziellen „Token“ ● Server besitzt ebenfalls Passwort und kann gegenprüfen 6. Sicherheit 6. Sicherheit 6.2 HTTPS ● https:// ● ALLES wird verschlüsselt übermittelt ● Sicherheitsschicht zwischen Anwendungsschicht und Transportschicht ● verwendet SSL oder TLS (s. Referat von Ilja) 6. Sicherheit Ende Danke für die Aufmerksamkeit! Referat zu HTTP - Internet-Protokolle - WS 2012/2013 - Uni Bielefeld - Dominik Theisel