Skip to main content

10.2 HTTP, HTTPS und Webkommunikation

HTTP und HTTPS gehören zu den wichtigsten Protokollen der Anwendungsschicht.

Sie werden vor allem für Webseiten, Webanwendungen und APIs verwendet.

HTTP steht für:

Hypertext Transfer Protocol

HTTPS steht für:

Hypertext Transfer Protocol Secure

Der wichtigste Unterschied:

HTTP ist unverschlüsselt.
HTTPS nutzt TLS-Verschlüsselung.

Merksatz:

HTTP = Webkommunikation ohne TLS.
HTTPS = Webkommunikation mit TLS.

Grundidee von HTTP

HTTP ist ein Protokoll zur Übertragung von Webinhalten.

Ein Client stellt eine Anfrage.

Ein Server liefert eine Antwort.

Beispiel:

Browser fordert Webseite an.
Webserver liefert HTML, CSS, JavaScript, Bilder oder Daten zurück.

Typische Inhalte:

- Webseiten
- Bilder
- CSS-Dateien
- JavaScript-Dateien
- JSON-Daten
- API-Antworten
- Downloads

Merksatz:

HTTP arbeitet mit Anfrage und Antwort.

Client und Server bei HTTP

Bei HTTP gibt es meistens:

Client
Server

Client:

stellt Anfrage

Server:

verarbeitet Anfrage
und sendet Antwort

Beispiel:

Browser = Client
Webserver = Server

Merksatz:

Client fragt an,
Server antwortet.

Request und Response

Eine HTTP-Kommunikation besteht aus:

Request
Response

Request bedeutet:

Anfrage des Clients

Response bedeutet:

Antwort des Servers

Beispiel:

Request:
Browser fordert /index.html an.

Response:
Server liefert die Datei index.html zurück.

Merksatz:

Request = Anfrage.
Response = Antwort.

HTTP-Request

Ein HTTP-Request enthält unter anderem:

- Methode
- Pfad oder URL
- Header
- optionalen Body

Beispiel vereinfacht:

GET /index.html HTTP/1.1
Host: example.com

Bedeutung:

Client möchte die Datei /index.html vom Host example.com abrufen.

Merksatz:

HTTP-Request beschreibt,
was der Client vom Server möchte.

HTTP-Response

Eine HTTP-Response enthält unter anderem:

- Statuscode
- Header
- optionalen Body

Beispiel vereinfacht:

HTTP/1.1 200 OK
Content-Type: text/html

<html>...</html>

Bedeutung:

Server antwortet erfolgreich mit HTML-Inhalt.

Merksatz:

HTTP-Response enthält Ergebnis und Inhalt.

URL

URL steht für:

Uniform Resource Locator

Eine URL beschreibt, wo eine Ressource erreichbar ist.

Beispiel:

https://www.example.com:443/docs/index.html?seite=1

Bestandteile:

Bestandteil Beispiel Bedeutung
Schema https Protokoll
Hostname www.example.com Servername
Port 443 Dienst-Port
Pfad /docs/index.html Ressource
Query ?seite=1 zusätzliche Parameter

Merksatz:

URL = Adresse einer Ressource.

Schema

Das Schema steht am Anfang einer URL.

Beispiele:

http://
https://

Das Schema sagt dem Client, welches Protokoll verwendet werden soll.

Beispiel:

http://example.com

nutzt HTTP.

https://example.com

nutzt HTTPS.

Merksatz:

Schema zeigt das verwendete Protokoll.

Hostname

Der Hostname ist der Name des Servers.

Beispiel:

www.example.com

Der Hostname muss meist per DNS in eine IP-Adresse aufgelöst werden.

Ablauf vereinfacht:

Browser kennt Namen.
DNS liefert IP-Adresse.
Browser verbindet sich zur IP-Adresse.

Merksatz:

Hostname wird über DNS zur IP-Adresse.

Port bei HTTP und HTTPS

HTTP nutzt typischerweise:

TCP 80

HTTPS nutzt typischerweise:

TCP 443

Wenn kein Port angegeben wird, nutzt der Client den Standardport des Schemas.

Beispiele:

http://example.com
→ TCP 80

https://example.com
→ TCP 443

Merksatz:

HTTP = TCP 80.
HTTPS = TCP 443.

Pfad

Der Pfad zeigt, welche Ressource auf dem Server angefordert wird.

Beispiele:

/
/index.html
/produkte
/api/users
/bilder/logo.png

Der Server entscheidet, welcher Inhalt zu diesem Pfad geliefert wird.

Merksatz:

Pfad zeigt die gewünschte Ressource auf dem Server.

Query-Parameter

Query-Parameter stehen nach einem Fragezeichen.

Beispiel:

/suche?q=netzwerk&page=2

Bedeutung:

q=netzwerk
page=2

Query-Parameter übergeben zusätzliche Informationen an den Server.

Typisch bei:

- Suchfunktionen
- Filtern
- Seitennummern
- API-Abfragen

Merksatz:

Query-Parameter geben Zusatzinformationen mit.

HTTP-Methoden

HTTP-Methoden beschreiben, was der Client tun möchte.

Wichtige Methoden:

Methode Bedeutung
GET Daten abrufen
POST Daten senden oder erstellen
PUT Ressource vollständig ersetzen
PATCH Ressource teilweise ändern
DELETE Ressource löschen
HEAD nur Kopfzeilen abrufen
OPTIONS unterstützte Möglichkeiten abfragen

Merksatz:

GET liest.
POST sendet.
PUT ersetzt.
PATCH ändert teilweise.
DELETE löscht.

GET

GET wird verwendet, um Daten abzurufen.

Beispiele:

Webseite laden
Bild abrufen
API-Daten lesen

GET sollte normalerweise keine Daten verändern.

Beispiel:

GET /artikel/10

Bedeutung:

Artikel 10 abrufen.

Merksatz:

GET = Daten abrufen.

POST

POST wird verwendet, um Daten an den Server zu senden.

Beispiele:

Formular absenden
Benutzer erstellen
Datei hochladen
API-Daten senden

Beispiel:

POST /login

Bedeutung:

Login-Daten werden an den Server gesendet.

Merksatz:

POST = Daten an Server senden.

PUT

PUT ersetzt eine Ressource vollständig.

Beispiel:

PUT /users/5

Bedeutung:

Benutzer 5 wird vollständig mit den gesendeten Daten ersetzt.

Merksatz:

PUT = vollständig ersetzen.

PATCH

PATCH ändert eine Ressource teilweise.

Beispiel:

PATCH /users/5

Bedeutung:

Bei Benutzer 5 wird nur ein Teil geändert,
zum Beispiel die E-Mail-Adresse.

Merksatz:

PATCH = teilweise ändern.

DELETE

DELETE löscht eine Ressource.

Beispiel:

DELETE /users/5

Bedeutung:

Benutzer 5 löschen.

Merksatz:

DELETE = Ressource löschen.

HTTP-Header

HTTP-Header enthalten Zusatzinformationen zur Anfrage oder Antwort.

Beispiele:

Header Bedeutung
Host angefragter Hostname
User-Agent Client-Information
Accept gewünschte Antwortformate
Content-Type Format des gesendeten Inhalts
Authorization Authentifizierungsdaten
Cookie Cookie-Daten
Set-Cookie Server setzt Cookie
Cache-Control Cache-Verhalten
Location Weiterleitungsziel

Merksatz:

Header enthalten Zusatzinformationen.

Content-Type

Content-Type beschreibt, welches Datenformat im Body enthalten ist.

Beispiele:

Content-Type Bedeutung
text/html HTML-Webseite
application/json JSON-Daten
application/xml XML-Daten
text/plain einfacher Text
image/png PNG-Bild
application/pdf PDF-Dokument

Merksatz:

Content-Type sagt,
welches Format der Inhalt hat.

Accept-Header

Der Accept-Header sagt dem Server, welche Antwortformate der Client akzeptiert.

Beispiel:

Accept: application/json

Bedeutung:

Client möchte JSON als Antwort erhalten.

Merksatz:

Accept sagt,
was der Client empfangen möchte.

Authorization-Header

Der Authorization-Header wird für Authentifizierung verwendet.

Beispiele:

Bearer Token
Basic Authentication
API-Key-Verfahren

Beispiel vereinfacht:

Authorization: Bearer eyJ...

Wichtig:

Solche Daten müssen geschützt übertragen werden.
Deshalb sollte dafür HTTPS genutzt werden.

Merksatz:

Authorization-Header enthält Zugriffsinformationen.

Cookies

Cookies sind kleine Daten, die der Server im Browser speichern lassen kann.

Der Server sendet:

Der Browser sendet später:

Typische Nutzung:

- Sitzung wiedererkennen
- Login-Status
- Spracheinstellung
- Warenkorb
- Tracking

Merksatz:

Cookies helfen,
Zustand über mehrere HTTP-Anfragen zu merken.

HTTP ist zustandslos

HTTP ist grundsätzlich zustandslos.

Das bedeutet:

Jede Anfrage ist zunächst unabhängig.

Ohne Cookies, Tokens oder andere Mechanismen wüsste der Server nicht automatisch, dass mehrere Anfragen zum gleichen Benutzer gehören.

Beispiel:

Anfrage 1:
Login

Anfrage 2:
Dashboard öffnen

Der Server braucht einen Mechanismus, um die Sitzung wiederzuerkennen.

Merksatz:

HTTP ist zustandslos,
Sitzungen schaffen Zusammenhang.

Damit erkennt der Server:

Diese Anfrage gehört zu einer bestimmten Sitzung.

Beispiel:

Benutzer meldet sich an.
Server setzt Session-Cookie.
Browser sendet Cookie bei weiteren Anfragen mit.
Server erkennt Benutzer wieder.

Merksatz:


HTTPS

HTTPS ist HTTP über TLS.

Dabei werden HTTP-Daten verschlüsselt übertragen.

Schutz durch TLS:

- Schutz vor Mitlesen
- Schutz vor unbemerkter Veränderung
- Prüfung der Serveridentität über Zertifikat

Merksatz:

HTTPS schützt HTTP-Kommunikation mit TLS.

Ablauf bei HTTPS vereinfacht

Bei HTTPS passiert vereinfacht:

1. DNS löst den Namen auf.
2. TCP-Verbindung zu Port 443 wird aufgebaut.
3. TLS-Handshake findet statt.
4. Zertifikat wird geprüft.
5. HTTP-Anfrage wird verschlüsselt gesendet.
6. HTTP-Antwort wird verschlüsselt empfangen.

Merksatz:

Bei HTTPS kommt vor HTTP zuerst TCP und TLS.

HTTP und TLS unterscheiden

Thema Einordnung
HTTP Anwendungsschicht-Protokoll
HTTPS HTTP über TLS
TLS Verschlüsselungs- und Schutzschicht
TCP 443 Transportverbindung
Zertifikat Vertrauensnachweis bei TLS

Merksatz:

HTTP spricht die Anwendung.
TLS schützt die Verbindung.
TCP transportiert.

HTTP-Versionen

Es gibt verschiedene HTTP-Versionen.

Wichtige Versionen:

Version Kurzidee
HTTP/1.1 klassisch, weit verbreitet
HTTP/2 effizientere Übertragung über eine Verbindung
HTTP/3 nutzt QUIC über UDP

Wichtig für die Prüfung:

HTTP/3 nutzt QUIC über UDP.
Klassisches HTTPS nutzt häufig TCP 443.

Merksatz:

HTTP/3 nutzt QUIC über UDP.

HTTP/1.1

HTTP/1.1 ist eine klassische und weit verbreitete Version.

Typische Merkmale:

- Request/Response
- Header
- Host-Header wichtig für virtuelle Hosts
- mehrere Anfragen möglich
- sehr verbreitet

Merksatz:

HTTP/1.1 ist die klassische Webkommunikation.

HTTP/2

HTTP/2 verbessert die Effizienz der Webkommunikation.

Vorteile:

- mehrere Streams über eine Verbindung
- bessere Nutzung einer Verbindung
- Header-Kompression
- geringere Ladezeiten möglich

Für die Prüfung reicht meist:

HTTP/2 ist moderner und effizienter als HTTP/1.1.

Merksatz:

HTTP/2 kann mehrere Übertragungen effizienter bündeln.

HTTP/3

HTTP/3 basiert auf QUIC.

QUIC nutzt UDP.

Typisch:

UDP 443

Vorteile:

- schnellerer Verbindungsaufbau
- bessere Leistung bei Paketverlust
- moderne Webkommunikation

Prüfungsfalle:

HTTPS bedeutet nicht immer nur TCP 443,
bei HTTP/3 kann UDP 443 relevant sein.

Merksatz:

HTTP/3 = HTTP über QUIC über UDP.

Statuscodes

HTTP-Statuscodes zeigen das Ergebnis einer Anfrage.

Sie stehen in der HTTP-Antwort.

Beispiel:

200 OK

Bedeutung:

Anfrage erfolgreich.

Merksatz:

Statuscode zeigt,
wie der Server die Anfrage beantwortet hat.

Statuscode-Bereiche

Bereich Bedeutung
1xx Information
2xx Erfolg
3xx Weiterleitung
4xx Clientfehler
5xx Serverfehler

Merksatz:

2xx = Erfolg.
3xx = Weiterleitung.
4xx = Clientfehler.
5xx = Serverfehler.

Wichtige HTTP-Statuscodes

Statuscode Bedeutung
200 OK
201 Created
301 dauerhaft weitergeleitet
302 vorübergehend weitergeleitet
304 nicht verändert
400 fehlerhafte Anfrage
401 nicht authentifiziert
403 verboten
404 nicht gefunden
405 Methode nicht erlaubt
429 zu viele Anfragen
500 interner Serverfehler
502 Bad Gateway
503 Dienst nicht verfügbar
504 Gateway Timeout

Merksatz:

404 = nicht gefunden.
500 = Serverfehler.
502 = Gateway-Problem.
503 = Dienst nicht verfügbar.

401 und 403 unterscheiden

401 bedeutet:

nicht authentifiziert

Der Benutzer ist nicht oder nicht gültig angemeldet.

403 bedeutet:

verboten

Der Benutzer ist zwar eventuell bekannt, hat aber keine Berechtigung.

Merksatz:

401 = wer bist du?
403 = du darfst das nicht.

404 Not Found

404 bedeutet:

Ressource nicht gefunden

Mögliche Ursachen:

- falscher Pfad
- Datei fehlt
- Route in Anwendung fehlt
- Link falsch
- Ressource wurde gelöscht
- Rewrite-Regel falsch

Merksatz:

404 = angeforderte Ressource existiert dort nicht.

500 Internal Server Error

500 bedeutet:

interner Serverfehler

Mögliche Ursachen:

- Fehler in Anwendung
- Datenbankfehler
- Programmierfehler
- falsche Konfiguration
- fehlende Rechte
- Dienstproblem

Merksatz:

500 = Server oder Anwendung hat intern ein Problem.

502 Bad Gateway

502 tritt häufig bei Proxys oder Gateways auf.

Bedeutung:

Ein Gateway oder Proxy hat keine gültige Antwort vom Backend erhalten.

Mögliche Ursachen:

- Backend-Dienst down
- falscher Backend-Port
- Reverse Proxy falsch konfiguriert
- Verbindung zum Backend scheitert
- Backend antwortet ungültig

Merksatz:

502 = Proxy erreicht Backend nicht sauber.

503 Service Unavailable

503 bedeutet:

Dienst nicht verfügbar

Mögliche Ursachen:

- Server überlastet
- Wartungsmodus
- Anwendung nicht gestartet
- Backend nicht verfügbar
- Ressourcenmangel

Merksatz:

503 = Dienst aktuell nicht verfügbar.

504 Gateway Timeout

504 bedeutet:

Gateway Timeout

Ein Proxy oder Gateway wartet zu lange auf Antwort vom Backend.

Mögliche Ursachen:

- Backend langsam
- Backend hängt
- Netzwerkproblem zum Backend
- Timeout zu kurz eingestellt
- Datenbankantwort dauert zu lange

Merksatz:

504 = Gateway wartet zu lange auf Backend.

Weiterleitungen

Weiterleitungen gehören zu den 3xx-Statuscodes.

Beispiele:

301
302

301 bedeutet:

dauerhaft weitergeleitet

302 bedeutet:

vorübergehend weitergeleitet

Der neue Ort steht häufig im Header:

Location

Merksatz:

3xx bedeutet:
Client soll woanders hin.

Cache

Caching bedeutet:

Inhalte werden zwischengespeichert.

Ziel:

schnellere Ladezeiten
weniger Serverlast
weniger Datenverkehr

Caches können existieren bei:

- Browser
- Proxy
- CDN
- Anwendung
- DNS

Merksatz:

Cache speichert Daten,
um spätere Anfragen schneller zu beantworten.

Cache-Control

Cache-Control ist ein HTTP-Header.

Er steuert, wie Inhalte zwischengespeichert werden dürfen.

Beispiele:

Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: max-age=3600

Merksatz:

Cache-Control steuert HTTP-Caching.

API und HTTP

Viele APIs nutzen HTTP oder HTTPS.

Typisch:

URL beschreibt Ressource.
HTTP-Methode beschreibt Aktion.
Header enthalten Zusatzinformationen.
Body enthält Daten.
Statuscode zeigt Ergebnis.

Beispiel:

GET /api/users

Bedeutung:

Benutzer abrufen.

Merksatz:

Web-APIs nutzen HTTP als Kommunikationsgrundlage.

REST und HTTP

REST nutzt HTTP-Ideen für APIs.

Typisch:

Aktion HTTP-Methode Beispiel
lesen GET GET /users
erstellen POST POST /users
ersetzen PUT PUT /users/5
teilweise ändern PATCH PATCH /users/5
löschen DELETE DELETE /users/5

Merksatz:

REST ordnet Aktionen oft HTTP-Methoden zu.

JSON bei APIs

Viele APIs nutzen JSON als Datenformat.

Beispiel:

{
  "id": 5,
  "name": "Felix",
  "rolle": "admin"
}

Wichtig:

JSON gehört als Datenformat eher zu Schicht 6,
wird aber häufig in Schicht-7-APIs genutzt.

Merksatz:

APIs nutzen oft JSON für strukturierte Daten.

Content-Type bei APIs

Bei APIs ist Content-Type besonders wichtig.

Beispiel:

Content-Type: application/json

Bedeutung:

Der Body enthält JSON.

Wenn Content-Type falsch ist, kann der Server die Daten falsch interpretieren oder ablehnen.

Merksatz:

Falscher Content-Type kann API-Fehler verursachen.

Authentifizierung bei Webdiensten

Webdienste können unterschiedliche Authentifizierungsarten nutzen.

Beispiele:

- Benutzername und Passwort
- Session-Cookie
- Bearer Token
- API-Key
- Client-Zertifikat
- OAuth
- OpenID Connect
- Multi-Faktor-Authentifizierung

Merksatz:

Webdienste müssen oft Benutzer oder Clients prüfen.

Bearer Token

Ein Bearer Token ist ein Zugriffstoken.

Es wird häufig im Authorization-Header gesendet.

Beispiel:

Authorization: Bearer <token>

Wichtig:

Wer den Token besitzt,
kann ihn oft verwenden.

Deshalb muss er geschützt werden.

Merksatz:

Bearer Token wie ein Passwort schützen.

CORS kurz erklärt

CORS steht für:

Cross-Origin Resource Sharing

CORS regelt, ob ein Browser eine Webseite von einer Herkunft auf Ressourcen einer anderen Herkunft zugreifen lässt.

Beispiel:

Webseite von app.firma.de
ruft API von api.firma.de auf

Wenn CORS nicht passend konfiguriert ist, blockiert der Browser die Anfrage.

Merksatz:

CORS ist eine Browser-Sicherheitsregel für Webanfragen.

Same-Origin Policy

Die Same-Origin Policy ist eine wichtige Browser-Sicherheitsregel.

Sie begrenzt, wie Webseiten auf Daten anderer Herkunft zugreifen dürfen.

Herkunft besteht aus:

- Schema
- Host
- Port

Beispiel:

https://app.firma.de:443

Merksatz:

Gleiche Herkunft = Schema, Host und Port passen.

Mixed Content

Mixed Content bedeutet:

Eine HTTPS-Seite lädt Inhalte über HTTP nach.

Beispiel:

Hauptseite:
https://wiki.firma.de

eingebundenes Script:
http://example.com/script.js

Browser blockieren solche Inhalte oft oder warnen.

Merksatz:

HTTPS-Seiten sollten keine HTTP-Inhalte nachladen.

Reverse Proxy

Ein Reverse Proxy steht vor einem oder mehreren internen Diensten.

Ablauf:

Client
→ Reverse Proxy
→ Backend-Server

Typische Aufgaben:

- TLS beenden
- Anfragen weiterleiten
- mehrere Dienste über eine Domainstruktur bereitstellen
- Lastverteilung
- Zugriffsschutz
- Header setzen
- Weiterleitungen durchführen

Merksatz:

Reverse Proxy nimmt Anfragen an und leitet sie intern weiter.

Backend

Backend bezeichnet den Dienst, der hinter einem Reverse Proxy arbeitet.

Beispiel:

Client ruft https://wiki.firma.de auf.
Reverse Proxy nimmt Anfrage an.
Backend ist der interne Webdienst.

Mögliche Fehler:

- Backend läuft nicht
- falscher Backend-Port
- falsches Protokoll HTTP/HTTPS
- Firewall blockiert intern
- falscher Pfad

Merksatz:

Backend = eigentlicher Dienst hinter Proxy oder Anwendung.

Host-Header

Der Host-Header sagt dem Webserver, welcher Hostname angefragt wurde.

Beispiel:

Host: wiki.firma.de

Das ist wichtig, wenn mehrere Webseiten auf derselben IP-Adresse laufen.

Der Server entscheidet anhand des Host-Headers, welche Webseite ausgeliefert wird.

Merksatz:

Host-Header ermöglicht mehrere Webseiten auf einer IP.

Virtueller Host

Ein virtueller Host erlaubt, mehrere Webseiten oder Dienste auf einem Server zu betreiben.

Beispiel:

wiki.firma.de
cloud.firma.de
shop.firma.de

Alle können auf dieselbe IP zeigen, aber unterschiedliche Inhalte liefern.

Merksatz:

Virtuelle Hosts unterscheiden Webseiten über Hostnamen.

Fehlerbild: Webseite nicht erreichbar

Mögliche Ursachen nach Schichten:

Schicht 3:
IP, Gateway oder Routing falsch

Schicht 4:
TCP 80 oder 443 nicht erreichbar

Schicht 6:
TLS-Zertifikat fehlerhaft

Schicht 7:
HTTP-Fehler, Anwendung, Pfad oder Backend

Merksatz:

Webfehler systematisch nach Schichten prüfen.

Fehlerbild: HTTP 404

Mögliche Ursachen:

- falscher Pfad
- Datei existiert nicht
- Route in Anwendung fehlt
- Reverse Proxy leitet falsch weiter
- falsche Base-URL
- Anwendung erwartet anderen Pfad

Merksatz:

404 = Ressource unter diesem Pfad nicht gefunden.

Fehlerbild: HTTP 500

Mögliche Ursachen:

- Fehler in Anwendung
- Datenbank nicht erreichbar
- falsche Rechte
- Konfigurationsfehler
- Abhängigkeit fehlt
- Programmfehler
- Speicher- oder Ressourcenproblem

Merksatz:

500 = Anwendung oder Server hat intern ein Problem.

Fehlerbild: HTTP 502

Mögliche Ursachen:

- Reverse Proxy erreicht Backend nicht
- Backend-Port falsch
- Backend-Protokoll falsch
- Backend abgestürzt
- Firewall blockiert intern
- falscher Container-Name oder DNS-Name
- Timeout oder ungültige Backend-Antwort

Merksatz:

502 = Proxy-zu-Backend prüfen.

Fehlerbild: Login-Schleife

Eine Login-Schleife bedeutet:

Benutzer meldet sich an,
landet aber wieder auf Login-Seite.

Mögliche Ursachen:

Merksatz:

Login-Schleifen sind oft Cookie-, Session- oder Token-Probleme.

Fehlerbild: API lehnt Anfrage ab

Mögliche Ursachen:

- falsche HTTP-Methode
- falsche URL
- fehlender Authorization-Header
- Token ungültig
- falscher Content-Type
- ungültiges JSON
- fehlende Pflichtfelder
- fehlende Berechtigung
- Rate Limit erreicht

Merksatz:

API-Fehler mit Methode, URL, Header, Body und Statuscode prüfen.

Fehlersuche bei Webkommunikation

Eine sinnvolle Reihenfolge:

1. DNS-Name wird korrekt aufgelöst?
2. Ziel-IP erreichbar?
3. TCP-Port 80 oder 443 erreichbar?
4. TLS-Zertifikat gültig?
5. HTTP-Statuscode prüfen.
6. Weiterleitungen prüfen.
7. Header prüfen.
8. Cookies und Session prüfen.
9. Reverse Proxy prüfen.
10. Backend und Anwendungslogs prüfen.

Merksatz:

Bei Webfehlern erst Verbindung,
dann TLS,
dann HTTP,
dann Anwendung prüfen.

HTTP-Logs

HTTP-Logs helfen bei der Fehlersuche.

Typische Informationen:

- Client-IP
- Zeit
- Methode
- Pfad
- Statuscode
- Antwortgröße
- User-Agent
- Referer
- Bearbeitungszeit

Beispiele für wichtige Fragen:

Kommt die Anfrage beim Server an?
Welcher Pfad wird aufgerufen?
Welcher Statuscode wird geliefert?
Ist der Fehler nur bei bestimmten Clients?

Merksatz:

HTTP-Logs zeigen,
was der Webserver tatsächlich beantwortet.

Reverse-Proxy-Logs

Reverse-Proxy-Logs sind wichtig, wenn ein Proxy zwischen Client und Backend steht.

Sie zeigen oft:

- eingehende Anfrage
- gewähltes Backend
- Statuscode
- Upstream-Fehler
- Timeout
- TLS-Informationen
- Weiterleitungsprobleme

Merksatz:

Bei 502, 503 und 504 zuerst Proxy und Backend prüfen.

Sicherheit bei HTTP und HTTPS

Wichtige Sicherheitsregeln:

- HTTPS statt HTTP verwenden
- Zertifikate aktuell halten
- sichere Cookies setzen
- sensible Daten nicht in URLs schreiben
- Eingaben prüfen
- Authentifizierung schützen
- Rechte sauber prüfen
- unnötige Header vermeiden
- nicht benötigte Dienste abschalten
- Logs datenschutzbewusst behandeln

Merksatz:

Websicherheit betrifft Transport,
Anwendung
und Benutzerzugriff.

Sensible Daten nicht in URLs

Sensible Daten sollten nicht in Query-Parametern stehen.

Problem:

URLs können in Logs,
Browserhistorie,
Proxys
oder Referer-Headern auftauchen.

Schlecht:

/login?password=geheim

Besser:

sensible Daten im Body übertragen
und HTTPS verwenden.

Merksatz:

Passwörter und Tokens gehören nicht in URLs.

HTTP und Datenschutz

HTTP-Logs können personenbezogene Daten enthalten.

Beispiele:

- IP-Adressen
- Benutzerkennungen
- Pfade
- Suchbegriffe
- Tokens in URLs
- Zeitstempel

Deshalb wichtig:

Logs schützen,
Aufbewahrung begrenzen,
sensible Daten vermeiden.

Merksatz:

Weblogs können sensible Informationen enthalten.

Einordnung in das OSI-Modell

Thema Schicht
IP-Adresse 3
TCP 80 / TCP 443 4
TLS 6 mit Bezug zu 4 und 7
HTTP 7
HTTPS 7 über TLS
URL 7
HTTP-Header 7
HTTP-Methode 7
HTTP-Statuscode 7
Cookie 7 mit Sitzungsbezug
JSON-Format 6 / 7-Bezug
Reverse Proxy 7 mit Bezug zu 4 und 6

Merksatz:

HTTP ist Schicht 7.
TLS schützt darunter.
TCP transportiert darunter.

Typische IHK-Fragen

In AP1 und AP2 kann zum Beispiel gefragt werden:

- Was ist HTTP?
- Was ist HTTPS?
- Was ist der Unterschied zwischen HTTP und HTTPS?
- Welche Ports nutzen HTTP und HTTPS?
- Was ist ein HTTP-Request?
- Was ist eine HTTP-Response?
- Was ist eine URL?
- Was bedeuten GET, POST, PUT, PATCH und DELETE?
- Was ist ein HTTP-Header?
- Was bedeutet Content-Type?
- Was ist ein Cookie?
- Warum ist HTTP zustandslos?
- Was bedeuten HTTP-Statuscodes?
- Was ist der Unterschied zwischen 401 und 403?
- Was bedeuten 404, 500, 502, 503 und 504?
- Was ist ein Reverse Proxy?
- Warum kann eine Webseite trotz offenem Port Fehler anzeigen?

Typische Prüfungsfallen

HTTP gehört zu Schicht 7.

HTTPS gehört zu Schicht 7,
nutzt aber TLS.

HTTP nutzt typischerweise TCP 80.

HTTPS nutzt typischerweise TCP 443.

HTTP/3 nutzt QUIC über UDP.

Port gehört zu Schicht 4.

HTTP-Methode gehört zu Schicht 7.

HTTP-Statuscode gehört zu Schicht 7.

TLS-Zertifikatsfehler sind nicht einfach HTTP-Fehler.

HTTP ist grundsätzlich zustandslos.

Cookies helfen bei Sitzungen.

GET sollte Daten abrufen.

POST sendet Daten an den Server.

401 bedeutet nicht authentifiziert.

403 bedeutet verboten.

404 bedeutet nicht gefunden.

500 bedeutet interner Serverfehler.

502 deutet häufig auf Proxy-Backend-Problem.

503 bedeutet Dienst nicht verfügbar.

504 bedeutet Gateway Timeout.

Offener TCP-Port 443 heißt nicht,
dass die Webanwendung korrekt funktioniert.

Wichtige Begriffe kurz erklärt

Begriff Kurze Erklärung
HTTP Webprotokoll
HTTPS HTTP über TLS
Request Anfrage des Clients
Response Antwort des Servers
URL Adresse einer Ressource
Schema Protokollteil einer URL
Hostname Name des Servers
Pfad angeforderte Ressource
Query Zusatzparameter in URL
Methode Aktion einer HTTP-Anfrage
Header Zusatzinformationen
Body Nutzdaten einer Anfrage oder Antwort
Content-Type Format des Inhalts
Cookie gespeicherte Webinformation
Session-Cookie Cookie zur Sitzungszuordnung
Statuscode Ergebnis einer HTTP-Anfrage
Redirect Weiterleitung
Cache Zwischenspeicher
API Anwendungsschnittstelle
REST API-Architekturstil
Bearer Token Zugriffstoken
CORS Browser-Regel für fremde Herkunft
Reverse Proxy vorgelagerter Webserver
Backend interner Ziel-Dienst

IHK-sichere Kurzformulierung

HTTP ist ein Anwendungsschicht-Protokoll zur Übertragung von Webinhalten. Es arbeitet mit Requests und Responses. Ein Client fordert eine Ressource über eine URL an, der Server antwortet mit Headern, einem Statuscode und optionalem Inhalt. HTTPS ist HTTP über TLS und schützt die Übertragung durch Verschlüsselung, Integrität und Serverauthentifizierung. HTTP nutzt typischerweise TCP-Port 80, HTTPS typischerweise TCP-Port 443. HTTP-Methoden wie GET, POST, PUT, PATCH und DELETE beschreiben die gewünschte Aktion. HTTP-Statuscodes zeigen das Ergebnis einer Anfrage an. Fehler wie 404, 500, 502, 503 oder 504 helfen bei der Fehlersuche auf Anwendungsschicht.


Merksätze

HTTP = Hypertext Transfer Protocol.

HTTPS = HTTP über TLS.

HTTP gehört zu Schicht 7.

HTTPS gehört zu Schicht 7 mit TLS-Bezug.

HTTP nutzt typischerweise TCP 80.

HTTPS nutzt typischerweise TCP 443.

HTTP/3 nutzt QUIC über UDP.

Client stellt Request.

Server sendet Response.

URL zeigt Ressource.

Hostname wird per DNS aufgelöst.

GET ruft Daten ab.

POST sendet Daten.

PUT ersetzt vollständig.

PATCH ändert teilweise.

DELETE löscht.

Header enthalten Zusatzinformationen.

Content-Type beschreibt das Datenformat.

Cookie hilft bei Sitzungen.

HTTP ist zustandslos.

HTTPS schützt HTTP mit TLS.

Erst TCP,
dann TLS,
dann HTTP.

2xx = Erfolg.

3xx = Weiterleitung.

4xx = Clientfehler.

5xx = Serverfehler.

401 = nicht authentifiziert.

403 = verboten.

404 = nicht gefunden.

500 = interner Serverfehler.

502 = Bad Gateway.

503 = Dienst nicht verfügbar.

504 = Gateway Timeout.

Offener Port heißt nicht:
Webanwendung funktioniert.

Bei Webfehlern DNS,
IP,
Port,
TLS,
HTTP
und Anwendung prüfen.