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