Matura: Systemtechnik

HTTP(s)

Einordnung im Schichtenmodell

Entstehung

Ab 1989 entwickelten Tim Berners-Lee und sein Team am CERN, dem europäischen Kernforschungszentrum in der Schweiz, das Hypertext Transfer Protocol, zusammen mit den Konzepten URL und HTML, womit die Grundlagen des World Wide Web geschaffen wurden.

Quelle: https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol

RFC

RequestResponse-Modell

Zustandslosigkeit

Beschleunigung/Optimierung durch HTTP/2

http-Caching

Struktur/Aufbau eines http-Transfers

Header-Arten und einige Felder

Anfragemethoden/-funktionen

Methode Beschreibung
GET Anforderung einer Ressource (Datei) unter Angabe eines URI
POST Senden von Daten (Text, Dateien, …) im Name-Wert-Paare-Format (Daten im HTTP-Body übertragen)
HEAD Gleiche Methode wie GET, jedoch ohne HTTP-Body (zB. Gültigkeit vom Browser-Cache)
PUT Erstellung bzw. Modifizierung von Ressourcen
PATCH Änderung von Ressourcen, ohne vollständige Ersetzung wie bei PUT
DELETE Entfernen einer Ressource
TRACE Zurücksenden der Anfrage, wie sie der Server empfangen hat (Debugging)
OPTIONS Liste von unterstützen Methoden und Merkmalen
CONNECT Verwendung von Proxy-Server, für SSL-Tunneling

Übertragung der Argumente Cookies/Session

Ein Cookie ist eine Textinformation, die im Browser auf dem Endgerät jeweils zu einer besuchten Website gespeichert werden kann. Das Cookie wird entweder vom Webserver an den Browser gesendet oder im Browser von JavaScript erzeugt. Der Webserver kann bei späteren, erneuten Besuchen dieser Seite diese Cookie-Information direkt vom Server aus auslesen oder über ein Skript der Website die Cookie-Information an den Server übertragen. Aufgabe dieses Cookies ist beispielsweise die Identifizierung des Surfers (Session ID), das Abspeichern eines Logins bei einer Webanwendung oder das Abspeichern eines Warenkorbs bei einem Online-Händler.

Durch eine Sitzung können Sitzungsdaten einem Benutzer zugeordnet werden. Sitzungsdaten werden serverseitig gespeichert und werden oft für komplexere Transaktionen benötigt. Minimale Sitzungsdaten bestehen nur aus der Session-ID.

Status-/Responsecode

Jede HTTP-Anfrage wird vom Server mit einem HTTP-Statuscode beantwortet.

Fehlerbehandlung

Fehler sind je nach Typ zu behandeln, soll heißen, dass serverseitige Fehler nur angezeigt werden sollen, clientseitige Fehler sollen genauer behandelt werden.

Funktionen

Authentifizierung

Basic Authentication

Digest Access Authentication

HTTPS

Zertifikate

Ablauf einer HTTPS-Kommunikation

Der Verbindungsaufbau erfolgt über einen HTTPS-Request vom Client zum Server. Beim Client handelt es sich beispielsweise um einen Webbrowser. Der Server wäre demnach ein Webserver.

  1. Client Hello: Der Client kontaktiert den Server über ein Protokoll mit Verschlüsselungsoptionen.
  2. Server Hello, Certificate, Server Key Exchange, Server Hello Done: Der Server nimmt die Verbindung an und schickt sein Zertifikat mit dem öffentlichen Schlüssel seines Schlüsselpaares zur Authentifizierung an den Client.
  3. Der Client überprüft das Server-Zertifikat und dessen Gültigkeit (Validierung). Erkennt der Client das Zertifikat als ungültig wird die Verbindung an dieser Stelle abgebrochen.
  4. Erkennt der Client das Zertifikat als gültig erzeugt der Client den symmetrischen Sitzungsschlüssel.
  5. Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message: Mit dem öffentlichen Schlüssel des Servers verschlüsselt der Client den Sitzungsschlüssel und schickt ihn an den Server.
  6. Mit seinem privaten Schlüssel kann der Server den verschlüsselten Sitzungsschlüssel entschlüsseln.
  7. Encrypted Handshake Message, Change Cipher Spec, Encrypted Handshake Message: Der Server bestätigt den geheimen Sitzungsschlüssel.
  8. Danach werden alle HTTP-Requests und -Responses verschlüsselt, bis die Verbindung abgebaut wird.

Quelle: https://www.elektronik-kompendium.de/sites/net/1811281.htm

REST-Service / REST API

Was muss ein http-Server zur Verfügung stellen?

URL/URI

Quelle: https://www.heise.de/tipps-tricks/URI-und-URL-was-ist-der-Unterschied-4655338.html

Wie kann man eine WebApplikation schützen?

Was kann ein Hacker bei einem WebServer „angreifen“?

Inwieweit spielt hier die IT-Sicherheit eine Rolle – welchen Beitrag kann ein Webserver hier liefern?

s.o.

Welche Rolle spielt das Betriebssystem?