Geführter Lehrgang
Backend Development
Vom Web-Grundlagenwissen bis zu APIs, Datenbanken, Auth, Betrieb und Observability.
Arbeite diese Seite von oben nach unten durch. Jeder Schritt enthält die einfache Erklärung, Praxis, technische Tiefe und den Quick-Check aus dem Glossar.
Vom Web-Grundlagenwissen bis zu APIs, Datenbanken, Auth, Betrieb und Observability.
4 bis 10 Wochen, grob 49+ Stunden aktive Lernzeit
Keine Expertenkenntnisse nötig, aber regelmäßige Wiederholung und eigene Notizen.
Du kannst die Begriffe erklären, typische Fälle einordnen, Grenzen benennen und mit Quick-Checks prüfen, ob das Wissen sitzt.
- Lokaler Lerner0 XP
- Backend-Ranking folgtGlobal
Abschlussprüfung
24 Fragen aus den Quick-Checks dieses Lernpfads. Erst antworten, dann Musterlösung öffnen und selbst bewerten.
Schritt 1 / 65
Backend
Was im Hintergrund einer Anwendung passiert.
S1
Schritt 1 / 65
Backend
Was im Hintergrund einer Anwendung passiert.
1. Verstehen
Eine App ist wie ein Restaurant.
- Frontend: Der prächtige Gastraum, die Speisekarte, der Kellner. (Was du siehst).
- Backend: Die Küche, das Lager, die Buchhaltung. (Was im Hintergrund passiert). Wenn du in der App auf "Kaufen" drückst, passiert im Frontend wenig (nur eine Lade-Animation). Das Backend prüft: "Ist Geld da? Ist Ware da?" und speichert die Bestellung in der Datenbank. Das Backend läuft auf dem Server, weit weg vom User, wo es sicher ist.
Merksatz: Der serverseitige Teil einer Softwareanwendung, der für Datenverarbeitung, Geschäftslogik, Datenbankzugriffe und APIs zuständig ist und für den Benutzer unsichtbar bleibt.
2. Anwenden
Sprachen: Python (Django/FastAPI), Java (Spring), JavaScript (Node.js), Go, PHP.
Komponenten:
- Webserver: Nimmt Anfragen entgegen (Nginx).
- App-Server: Führt Logik aus ("Berechne Preis").
- Datenbank: Speichert Daten dauerhaft (PostgreSQL).
- Cache: Speichert heiße Daten im RAM (Redis).
- Queue: Verwaltet Hintergrund-Jobs ("Email senden") (RabbitMQ).
Praxisroutine
In der Praxis lernst du Backend, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Stateless vs. Stateful
- Stateful: Der Server merkt sich im RAM, wer du bist ("Session"). Problem: Wenn der Server neustartet, sind alle ausgeloggt. Skaliert schlecht (User muss immer auf denselben Server).
- Stateless: Der Server vergisst alles sofort nach der Antwort. Du musst immer wieder dein Token (JWT) mitschicken. Skaliert perfekt (beliebiger Server kann antworten). Moderner Standard (REST).
2. Microservices
Monolith (Küche macht Pizza UND Sushi): Einfach zu starten, schwer zu ändern. Wenn der Pizzaofen brennt, gibt's auch kein Sushi. Microservices (Pizza-Stand und Sushi-Stand): Getrennte Backends, die miteinander reden. Vorteil: Teams arbeiten unabhängig. Pizza-Team macht Update, Sushi läuft weiter. Nachteil: Komplexität ("Distributed Monolith Hell").
3. Serverless (FaaS)
Kein Backend-Server mehr managen.
Du lädst nur eine Funktion hoch (check_price()).
Amazon (AWS Lambda) startet den Server nur für die 100 Millisekunden, wenn jemand die Funktion aufruft.
Du zahlst exakt für die Rechenzeit.
Billig bei wenig Last, teuer bei Dauerlast.
4. Vertiefen
1. N-Tier Architecture und Hexagonal
Moderne Backends werden in Schichten gebaut.
Spaghetticode greift vom HTTP-Router direkt in die Datenbank (SELECT * FROM users).
Professionelle Architektur teilt auf (N-Tier):
- Controller Layer: Nimmt den HTTP-Request an, validiert das JSON (JavaScript Object Notation).
- Service Layer: Business-Logik ("Darf der User diesen Rabatt nutzen?").
- Data Access Layer (Repository): Spricht mit der Datenbank. Noch moderner ist die Hexagonale Architektur (Ports and Adapters). Dort hängt die Logik (im Kern) nicht mehr von der Datenbank ab, sondern definiert Interfaces (Ports). Die Datenbank ist nur ein austauschbarer "Adapter", den man ansteckt.
2. Message Brokers und Asynchronität
Wenn der User auf "Registrieren" klickt, muss das Backend den User anlegen, ihm eine Bestätigungs-EierMail schicken, ihn an Stripe (Payment) melden und ein PDF-Willkommensdokument rendern.
Wenn das alles "In-Band" (synchron) im Haupt-Thread von Knotenpunkt zu Knotenpunkt wandert, wartet der User 5 Sekunden auf den HTTP-Response (und klickt frustriert dreimal auf Regisitrieren -> Duplikate).
Die Lösung: Queues (z.B. RabbitMQ, Kafka).
Der HTTP-Router legt den User im DB an, wirft eine Nachricht in die Queue ("User angemeldet") und meldet dem Frontend sofort 201 Created (Dauer: 0.1 Sekunden).
Im Hintergrund greifen sich abgetrennte "Worker" die Nachricht aus der Queue und rendern das PDF, ohne den User-Thread zu blockieren.
3. Skalierung: Vertikal vs. Horizontal
Dein Server bricht unter Last zusammen.
- Vertikal Skalieren (Scale Up): Du kaufst einen doppelt so teuren Server mit doppelt so viel RAM und CPU. Das Limit (Hardware) ist schnell erreicht.
- Horizontal Skalieren (Scale Out): Du kaufst 10 billige Server und stellst einen Load Balancer davor. Wenn ein Server stirbt, machen 9 weiter. Voraussetzungen: Deine App muss konsequent stateless sein. Dateiuploads dürfen nicht mehr auf der lokalen Festplatte (C:/) liegen, sondern auf geteiltem Cloud-Storage (S3), da der nächste Request vielleicht von Server 8 bedient wird, wo die Datei sonst fehlen würde.
5. Prüfen
BFF (Backend for Frontend)?
Ein Design Pattern. Statt einer Riesen-API gibt es spezielle Mini-Backends: Eines für die iOS-App (liefert kleine Bilder), eines für Desktop (liefert viele Details).ORM?
Object Relational Mapper. Ein Tool im Backend, das Python-Objekte automatisch in SQL-Befehle übersetzt. Spart Zeit, frisst Performance, wenn man nicht aufpasst (N+1 Problem).Headless CMS?
Ein Backend-Only CMS (Content Management System). Es hat kein Frontend (keine Webseite). Es liefert nur JSON per API. Das Frontend baut sich der Entwickler selbst (z. B. mit React).
Zusammenfassung
- Eine App ist wie ein Restaurant. Frontend: Der prächtige Gastraum, die Speisekarte, der Kellner. (Was du siehst). Backend: Die Küche, das Lager, die Buchhaltung. (Was im Hintergrund passiert). Wenn du in der App auf "Kaufen" drückst, passiert im Frontend...
- Sprachen: Python (Django/FastAPI), Java (Spring), JavaScript (Node.js), Go, PHP.
Optionale Praxisaufgabe
- Erkläre Backend in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Backend relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Frontend S1
Überblick: Alles, was du auf dem Bildschirm siehst und anfassen kannst. Buttons, Bilder, Farben, Animationen. Es läuft auf deinem Computer (im Browser). Es hat keine Geheimnisse (jeder kann "Rechtsklick - Quelltext anzeigen" machen). Deshalb darf das Frontend niemals sicherheitskritische Dinge tun ("Ist das Passwort richtig?"), sondern muss immer das Backend fragen.
Einfach erklärt: Die Heilige Dreifaltigkeit: 1. HTML: Die Struktur (Skelett). Überschrift. 2. CSS: Das Aussehen (Haut/Kleidung). h1 { color: red; }. 3. JavaScript: Das Verhalten (Muskeln). button.onclick = () = alert("Hallo!").
Frontend Security?
Existiert nicht. Validierung im Frontend ("Email muss @ enthalten") ist nur für UX (User Experience). Ein Hacker kann das mitcurlumgehen. Echte Sicherheit gibt es nur im Backend.WebAssembly (Wasm)?
Die Zukunft? Ermöglicht C++/Rust Code im Browser. Für High-Performance (Photoshop im Web, Spiele). Ersetzt JS nicht, ergänzt es.Responsive Design?
Pflicht. Die Seite muss auf Handy (300px) und 4K-Monitor (3840px) gut aussehen. CSS Media Queries (@media (max-width: 600px)) regeln das.
Fullstack Developer S1
Überblick: Jemand, der beides kann: Frontend und Backend. Er kann die Datenbank aufsetzen, die API schreiben und den "Kaufen"-Button schön machen. Ideal für Startups (ein Entwickler baut das ganze MVP). In großen Firmen oft umstritten: "Wer alles kann, kann nichts richtig." Realität heute: Dank Node.js (JavaScript überall) ist es einfacher geworden, Fullstack zu sein.
Einfach erklärt: Tech Stacks: MERN: MongoDB, Express, React, Node.js (Alles JS). LAMP: Linux, Apache, MySQL, PHP (Der Klassiker, heute eher Laravel). Jamstack: JavaScript, APIs, Markup. (Frontend ist statisch, Backend sind APIs).
Ist Fullstack besser bezahlt?
Oft ja, weil vielseitiger. Aber spezialisierte Experten (Security, AI) verdienen noch mehr.Muss ich Design können?
Nicht unbedingt "Design" (Farben wählen), aber UI-Implementation (CSS). Fullstacks nutzen oft UI-Libraries (Material UI, Tailwind UI), um nicht designen zu müssen.Zukunft?
AI (Copilot) hilft Fullstacks enorm. Die KI schreibt den Boilerplate-Code für beide Seiten. Die Rolle wird wichtiger, weil ein Mensch mehr Output liefern kann.
RAM S1
Überblick: RAM ist das Kurzzeitgedächtnis deines Computers. Alles, was du gerade jetzt machst (diese Webseite lesen, Musik hören), liegt im RAM. Es ist extrem schnell, aber vergesslich. Sobald du den Strom ausschaltest, ist der RAM leer. Deshalb musst du deine Hausarbeit speichern (auf die Festplatte schreiben), bevor du den PC herunterfährst.
Einfach erklärt: Wie viel RAM brauchst du? 8 GB: Standard für Surfen und Office. 16 GB: Gut für Gaming und Fotobearbeitung. 32 GB+: Für Videoschnitt und Profi-Anwendungen.
Warum speichert man nicht einfach alles im RAM?
1. Weil alles weg wäre, wenn der Strom ausfällt. 2. Weil RAM viel teurer ist als SSD-Speicher (pro Gigabyte).Was bedeutet "Chrome frisst RAM"?
Jeder offene Tab in Chrome ist ein eigener Prozess. Das ist sicher (wenn einer abstürzt, lebt der Rest weiter), kostet aber viel Arbeitsspeicher.Was ist der Unterschied zu VRAM?
VRAM (Video RAM) sitzt auf der Grafikkarte. Er ist speziell dafür optimiert, riesige Texturen und 3D-Modelle für Spiele zu speichern.
CPU S1
Überblick: Die CPU (Central Processing Unit) ist das Gehirn deines Computers. Sie erledigt alle Denkaufgaben. Jedes Mal, wenn du die Maus bewegst, eine Webseite öffnest oder 1+1 rechnest, ist es die CPU, die das macht. Sie ist ein winziger Chip (kleiner als ein Keks), der aber Milliarden von Befehlen pro Sekunde ausführen kann.
Einfach erklärt: Beim Kauf eines PCs achtet man auf zwei Dinge: 1. Kerne (Cores): Wie viele Aufgaben kann er gleichzeitig machen? 2 Kerne = Du kannst surfen und Musik hören. 8 Kerne = Du kannst spielen, streamen und Videos schneiden gleichzeitig. 2. Taktfrequenz (GHz): Wie schnell denkt er? 3 GHz = 3 Milliarden Takte pro Sekunde. (Schneller = Besser für Spiele).
Was ist wichtiger: Viele Kerne oder viel GHz?
Kommt drauf an. Für Gaming oft GHz (Single-Core Speed). Für Videoschnitt und Multitasking eher Kerne (Multi-Core Speed).Warum wird die CPU heiß?
Weil Milliarden von Elektronen mit hoher Geschwindigkeit durch winzige Leiterbahnen flitzen. Der elektrische Widerstand erzeugt Wärme, die der Lüfter wegblasen muss.Was ist der Unterschied zur GPU (Grafikkarte)?
Die CPU ist ein Alleskönner (wenige, starke Kerne). Die GPU ist ein Spezialist für Bilder (tausende, dumme Kerne), perfekt für parallele Aufgaben wie 3D-Grafik oder KI.
Schritt 1.1 / 65
Client
Wer eine Anfrage stellt und warum Client und Server getrennte Rollen haben.
S1
Schritt 1.1 / 65
Client
Wer eine Anfrage stellt und warum Client und Server getrennte Rollen haben.
1. Verstehen
Einsteiger-Brücke: Wenn du Client zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Client ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Ein Client ist das Gerät oder Programm, das einen Dienst nutzt und Anfragen stellt.
Merksatz: Client ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Client ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Dein Browser ist ein Client. Er fragt einen Server nach einer Webseite oder nach Daten.
Typische Anfängerfrage: Woran erkenne ich Client im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Client steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Clients können Browser, Apps, Skripte, andere Server oder Geräte sein. Sie senden Requests und verarbeiten Responses.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Client zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Client funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Wichtig sind Zuständigkeiten: Der Client darf darstellen und Eingaben sammeln, aber sicherheitskritische Entscheidungen gehören ins Backend.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Client ohne Fachsprache.
In einfachen Worten: Ein Client ist das Gerät oder Programm, das einen Dienst nutzt und Anfragen stellt. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Client praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Client ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem server und frontend. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Client zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Client ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Client steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre Client in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Client relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Frontend S1
Überblick: Alles, was du auf dem Bildschirm siehst und anfassen kannst. Buttons, Bilder, Farben, Animationen. Es läuft auf deinem Computer (im Browser). Es hat keine Geheimnisse (jeder kann "Rechtsklick - Quelltext anzeigen" machen). Deshalb darf das Frontend niemals sicherheitskritische Dinge tun ("Ist das Passwort richtig?"), sondern muss immer das Backend fragen.
Einfach erklärt: Die Heilige Dreifaltigkeit: 1. HTML: Die Struktur (Skelett). Überschrift. 2. CSS: Das Aussehen (Haut/Kleidung). h1 { color: red; }. 3. JavaScript: Das Verhalten (Muskeln). button.onclick = () = alert("Hallo!").
Frontend Security?
Existiert nicht. Validierung im Frontend ("Email muss @ enthalten") ist nur für UX (User Experience). Ein Hacker kann das mitcurlumgehen. Echte Sicherheit gibt es nur im Backend.WebAssembly (Wasm)?
Die Zukunft? Ermöglicht C++/Rust Code im Browser. Für High-Performance (Photoshop im Web, Spiele). Ersetzt JS nicht, ergänzt es.Responsive Design?
Pflicht. Die Seite muss auf Handy (300px) und 4K-Monitor (3840px) gut aussehen. CSS Media Queries (@media (max-width: 600px)) regeln das.
Schritt 1.2 / 65
Programmiersprache
Warum Backend-Logik zuerst in einer Sprache geschrieben wird.
S1
Schritt 1.2 / 65
Programmiersprache
Warum Backend-Logik zuerst in einer Sprache geschrieben wird.
1. Verstehen
Einsteiger-Brücke: Wenn du Programmiersprache zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Programmiersprache ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Eine Programmiersprache ist die Sprache, in der Menschen einem Computer Arbeitsanweisungen geben. Ohne Programmiersprache gibt es keine eigene App-Logik.
Merksatz: Programmiersprache ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Programmiersprache ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Für Anfänger ist wichtig: Python, Java, JavaScript, Go und PHP sind nicht „das Backend“, sondern Werkzeuge, mit denen man Backend-Logik schreiben kann.
Typische Anfängerfrage: Woran erkenne ich Programmiersprache im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Programmiersprache steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Programmiersprachen unterscheiden sich in Syntax, Laufzeitumgebung, Bibliotheken, Geschwindigkeit, Fehlerkultur und typischen Einsatzgebieten.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Programmiersprache zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Programmiersprache funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Die Sprache entscheidet selten allein über Qualität. Architektur, Tests, Teamwissen, Ökosystem, Betrieb und Wartbarkeit sind oft wichtiger als reine Sprachgeschwindigkeit.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Programmiersprache ohne Fachsprache.
In einfachen Worten: Eine Programmiersprache ist die Sprache, in der Menschen einem Computer Arbeitsanweisungen geben. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Programmiersprache praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Programmiersprache ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem python und java. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Programmiersprache zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Programmiersprache ist dabei entweder Werkzeug, Rolle, Technik oder...
- Technischer Zusammenhang: Programmiersprache steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe...
Optionale Praxisaufgabe
- Erkläre Programmiersprache in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Programmiersprache relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.1 / 65
Python
Eine leicht lesbare Sprache für Backend, Automatisierung und KI.
S1
Schritt 1.2.1 / 65
Python
Eine leicht lesbare Sprache für Backend, Automatisierung und KI.
1. Verstehen
Einsteiger-Brücke: Wenn du Python zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Python ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Python ist eine leicht lesbare Programmiersprache, die häufig für Backend, Automatisierung, Datenanalyse und KI genutzt wird.
Merksatz: Python ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Python ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Python liest sich oft näher an Alltagssprache als viele andere Sprachen. Deshalb eignet es sich gut, um Programmierlogik zu lernen.
Typische Anfängerfrage: Woran erkenne ich Python im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Python steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Im Backend wird Python oft mit Frameworks genutzt. Django bringt viele fertige Webfunktionen mit, FastAPI ist schlank und stark für moderne APIs.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Python zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Python funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Professionelle Python-Backends brauchen Dependency-Management, virtuelle Umgebungen, Typisierung, Tests, asynchrone Grenzen, sauberes Logging und kontrolliertes Deployment.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Python ohne Fachsprache.
In einfachen Worten: Python ist eine leicht lesbare Programmiersprache, die häufig für Backend, Automatisierung, Datenanalyse und KI genutzt wird. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Python praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Python ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem django und fastapi. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Python zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Python ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Python steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre Python in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Python relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.1.1 / 65
Django
Ein großes Python-Webframework mit vielen fertigen Webfunktionen.
S1
Schritt 1.2.1.1 / 65
Django
Ein großes Python-Webframework mit vielen fertigen Webfunktionen.
1. Verstehen
Einsteiger-Brücke: Wenn du Django zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Django ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Django ist ein Python-Webframework, das viele Standardfunktionen für Webanwendungen bereits mitbringt.
Merksatz: Django ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Django ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Django ist wie eine Werkstatt mit fertigen Regalen: Login, Datenbankzugriff, Admin-Oberfläche und Routing sind schon vorbereitet.
Typische Anfängerfrage: Woran erkenne ich Django im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Django steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Django nutzt Modelle, Views, URLs, Templates und ein ORM. Dadurch kann man datenbankgestützte Anwendungen schnell strukturiert bauen.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Django zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Django funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Wichtig sind saubere App-Grenzen, Query-Performance, Migrationen, Berechtigungen, Security-Settings, Caching und der Unterschied zwischen Django-Templates und API-only Betrieb.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Django ohne Fachsprache.
In einfachen Worten: Django ist ein Python-Webframework, das viele Standardfunktionen für Webanwendungen bereits mitbringt. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Django praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Django ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem python und framework. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Django zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Django ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Django steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre Django in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Django relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.1.2 / 65
FastAPI
Ein schlankes Python-Framework für moderne APIs.
S1
Schritt 1.2.1.2 / 65
FastAPI
Ein schlankes Python-Framework für moderne APIs.
1. Verstehen
Einsteiger-Brücke: Wenn du FastAPI zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. FastAPI ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
FastAPI ist ein Python-Framework für APIs. Es ist beliebt, weil es übersichtlich, schnell und gut dokumentierbar ist.
Merksatz: FastAPI ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. FastAPI ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Wenn Django eine große Werkstatt ist, ist FastAPI eher ein präzises Werkzeug für Schnittstellen: Du beschreibst Endpunkte und Datenmodelle sehr direkt.
Typische Anfängerfrage: Woran erkenne ich FastAPI im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: FastAPI steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
FastAPI nutzt Typannotationen, automatische OpenAPI-Dokumentation, Request-Validierung und eignet sich gut für JSON-basierte Services.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird FastAPI zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob FastAPI funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
In Produktion zählen Dependency Injection, Async-Verhalten, Datenbank-Sessions, Authentifizierung, Rate Limiting, Observability und saubere Fehlerantworten.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre FastAPI ohne Fachsprache.
In einfachen Worten: FastAPI ist ein Python-Framework für APIs. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem FastAPI praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und FastAPI ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem python und framework. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du FastAPI zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. FastAPI ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: FastAPI steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht,...
Optionale Praxisaufgabe
- Erkläre FastAPI in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem FastAPI relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.2 / 65
Java
Eine robuste Sprache für große Unternehmenssysteme.
S1
Schritt 1.2.2 / 65
Java
Eine robuste Sprache für große Unternehmenssysteme.
1. Verstehen
Einsteiger-Brücke: Wenn du Java zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Java ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Java ist eine verbreitete Programmiersprache für große, langlebige Unternehmensanwendungen.
Merksatz: Java ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Java ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Java wirkt am Anfang formeller als Python, ist aber sehr robust für Teams, große Codebasen und langfristige Wartung.
Typische Anfängerfrage: Woran erkenne ich Java im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Java steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Im Backend wird Java häufig mit Spring genutzt. Typisierung, Klassen, Interfaces und Build-Tools sorgen für klare Strukturen.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Java zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Java funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Professionelle Java-Systeme achten auf JVM-Verhalten, Threads, Speicher, Dependency Injection, Transaktionen, Observability und saubere Modulgrenzen.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Java ohne Fachsprache.
In einfachen Worten: Java ist eine verbreitete Programmiersprache für große, langlebige Unternehmensanwendungen. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Java praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Java ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem spring framework und programmiersprache. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Java zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Java ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Java steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre Java in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Java relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.2.1 / 65
Spring Framework
Das wichtigste Java-Ökosystem für Backends.
S1
Schritt 1.2.2.1 / 65
Spring Framework
Das wichtigste Java-Ökosystem für Backends.
1. Verstehen
Einsteiger-Brücke: Wenn du Spring Framework zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Spring Framework ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Spring ist das wichtigste Java-Ökosystem für moderne Backend-Anwendungen.
Merksatz: Spring Framework ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Spring Framework ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Spring nimmt dir viel Verbindungsarbeit ab: Webserver, Controller, Datenbankzugriff, Konfiguration und Security können standardisiert gebaut werden.
Typische Anfängerfrage: Woran erkenne ich Spring Framework im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Spring Framework steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Spring Boot startet Anwendungen mit sinnvollen Voreinstellungen. Spring MVC, Spring Data und Spring Security decken typische Backend-Aufgaben ab.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Spring Framework zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Spring Framework funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Tiefe Spring-Kenntnis umfasst Bean-Lifecycle, Profiles, Transaktionen, Security Filter Chains, Actuator, Test-Slices und Fehlkonfigurationen in Produktion.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Spring Framework ohne Fachsprache.
In einfachen Worten: Spring ist das wichtigste Java-Ökosystem für moderne Backend-Anwendungen. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Spring Framework praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Spring Framework ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem java und framework. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Spring Framework zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Spring Framework ist dabei entweder Werkzeug, Rolle, Technik oder...
- Technischer Zusammenhang: Spring Framework steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe...
Optionale Praxisaufgabe
- Erkläre Spring Framework in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Spring Framework relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.3 / 65
JavaScript
Die Sprache des Browsers, die mit Node.js auch im Backend läuft.
S1
Schritt 1.2.3 / 65
JavaScript
Die Sprache des Browsers, die mit Node.js auch im Backend läuft.
1. Verstehen
JavaScript ist die Seele moderner Webseiten. Während HTML die Knochen (Struktur) und CSS die Kleidung (Aussehen) ist, ist JavaScript das Gehirn und die Muskeln. Es macht Webseiten interaktiv.
- Wenn du auf "Warenkorb" klickst und sich an der Seite ein Menü öffnet -> JavaScript.
- Wenn Google Maps neue Karten nachlädt, ohne die Seite neu zu laden -> JavaScript.
- Wenn du ein Browser-Game spielst -> JavaScript.
Es ist die weltweit meistgenutzte Programmiersprache, weil sie in jedem Browser läuft.
Merksatz: Die Programmiersprache des Webs, die Webseiten lebendig und interaktiv macht.
2. Anwenden
Früher war JS nur für kleine Spielereien ("Lauftext in der Statusleiste") da. Heute ist es ein Kraftwerk. Es gibt riesige Frameworks (Baukästen), mit denen man ganze Apps baut:
- React (von Facebook): Für hochdynamische UIs (Instagram, Airbnb).
- Angular (von Google): Für große Unternehmens-Software.
- Vue.js: Einsteigerfreundlich und flexibel.
Und mit Node.js läuft JavaScript jetzt sogar auf Servern (Backend). Du kannst also mit einer Sprache Frontend (Browser) und Backend (Server) programmieren ("Full Stack").
Praxisroutine
In der Praxis lernst du JavaScript, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Single Threaded & Event Loop
JavaScript kann (eigentlich) nur eine Sache gleichzeitig tun (Single Threaded). Wenn es rechnet "1+1", kann es nicht gleichzeitig auf einen Mausklick reagieren. Der Trick: Der Event Loop. Schwere Aufgaben (z. B. "Lade Daten vom Server") werden an den Browser delegiert ("Web API"). JS sagt: "Sag mir Bescheid, wenn du fertig bist, ich mach solange was anderes." Sobald die Daten da sind, wird eine Callback-Funktion aufgerufen. So blockiert die Seite nie, obwohl nur ein Thread läuft (Asynchronität / Promises / Async-Await).
2. Typisierung (Dynamisch vs. Statisch)
JS ist schwach typisiert.
var x = 5; (Zahl)
x = "Hallo"; (Text)
Das ist in JS erlaubt. In strengen Sprachen (Java, C++) würde das Programm abstürzen.
Das macht JS flexibel, aber fehleranfällig ("Warum rechnet er '5' + 5 = '55' statt 10?").
Deshalb nutzen Profis TypeScript (JS mit strengen Typen).
4. Vertiefen
1. The Event Loop und Microtask Queue
JS hat die Call Stack und den Web API (oder Node.js libuv) Handler für Async-Calls (z.B. setTimeout(fn, 0)).
Wenn der Call Stack leer ist, pumpt der Event Loop die Tasks aus der Macrotask Queue in den Call Stack.
Aber als Promises (für Fetch, Async/Await) dazukamen, reichte das nicht. Sie bilden die privilegierte Microtask Queue.
Architektur-Gotcha: Der Event Loop priorisiert immer die Microtasks vor den Macrotasks. Sendest du 10.000 Promises in einer Schleife ab, wird die Microtask-Queue nie leer. Ein simples setTimeout (Macrotask) für die UI-Aktualisierung wird auf ewig verhungern (Starvation). Die Seite friert komplett ein, obwohl der Async-Code eigentlich "nicht-blockierend" war.
2. Prototypal Inheritance vs Class Syntax
class User {} in JS (ES6) ist pure Illusion ("Syntactic Sugar").
Im Hintergrund betreibt die V8-Engine weiterhin klassenlose Prototypal Inheritance.
Jedes Objekt (Funktion in JS) speichert einen Link auf sein Elterobjekt in dem versteckten Attribut __proto__ (der Prototype Link). Wenn du user.getName() aufrufst, sucht JS zuerst am Objekt selbst. Wenn nicht vorhanden, referenziert es das Elterobjekt, dann das Großelternobjekt, bis es bei der null Root ankommt (Prototype Chain). Verändert man den Prototypen zur Laufzeit (User.prototype.age = 20), erhalten schlagartig alle existierenden Kind-Instanzen diese neue Eigenschaft (Memory-effizient, aber hochgefährlich bei Pollution).
3. Closure und Memory Leaks
Ein Scope speist Variablen ein. Wenn die innere Funktion am Ende der Elternfunktion zurückgegeben wird (return innerFn), kapselt sie den äußeren Zustand dauerhaft mit ein (Die Closure).
closures sind genial für private Variablen (const bankAccount = (function(){ let balance = 0; return { deposit(){...} }})()).
Der Nachteil: Der Garbage Collector darf Variablen im Eltern-Scope solange nicht im RAM zerstören, wie die Child-Closure existiert. Registrierst du am DOM einen .addEventListener('click', () => do(largeData)), und entfernst den Event-Listener (Closure) beim 페이지wechsel nicht manuell (removeEventListener), explodiert der Arbeitsspeicher (Memory Leak in SPA React/Angular Apps).
5. Prüfen
Hat JavaScript etwas mit Java zu tun?
Nein! Absolut gar nichts. Man sagt oft: "Java verhält sich zu JavaScript wie Ham zu Hamster." Der Name war nur ein Marketing-Trick in den 90ern.Kann ich JavaScript ausschalten?
Ja (NoScript), aber dann ist das Internet kaputt. 99% aller modernen Webseiten (YouTube, Netflix, Amazon) funktionieren ohne JS gar nicht mehr.Was ist der Unterschied zum Backend (PHP/Python)?
JS läuft (meistens) auf deinem Computer (im Browser). PHP läuft auf dem Server. Das bedeutet: JS ist schnell (keine Ladezeit), aber man kann den Code sehen (unsicher für Geheimnisse).
Zusammenfassung
- JavaScript ist die Seele moderner Webseiten. Während HTML die Knochen (Struktur) und CSS die Kleidung (Aussehen) ist, ist JavaScript das Gehirn und die Muskeln. Es macht Webseiten interaktiv. Wenn du auf "Warenkorb" klickst und sich an der Seite ein Menü...
- Früher war JS nur für kleine Spielereien ("Lauftext in der Statusleiste") da. Heute ist es ein Kraftwerk. Es gibt riesige Frameworks (Baukästen), mit denen man ganze Apps baut: 1. React (von Facebook): Für hochdynamische UIs (Instagram, Airbnb). 2. Angular...
Optionale Praxisaufgabe
- Erkläre JavaScript in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem JavaScript relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
HTML S1
Überblick: HTML ist das Skelett jeder Webseite. Es ist keine Programmiersprache (es kann nicht rechnen), sondern eine Beschreibungssprache. Es sagt dem Browser nur, was was ist: Dies ist eine Überschrift Dies ist ein Textabsatz Hier kommt ein Bild hin Dies ist ein Knopf
Einfach erklärt: Jeder Browser hat einen "Röntgenblick". Rechtsklick auf jede Webseite - "Seitenquelltext anzeigen" (View Source). Da siehst du das nackte HTML. Es besteht aus Tags (Etiketten) in spitzen Klammern . Die meisten Tags haben einen Anfang und ein Ende . Dazwischen steht der Inhalt.
Warum nennt man HTML keine "Programmiersprache"?
Weil es keine Logik hat. Du kannst in reinem HTML nicht sagen "Wenn X passiert, dann tue Y" oder "Rechne 5 + 5". Es beschreibt nur statische Struktur.Was passiert, wenn ich ein Tag vergesse zu schließen (z. B.
</h1>fehlt)?Moderne Browser sind sehr tolerant und raten oft richtig, was du meintest. Aber es kann das Layout zerschießen ("Die ganze Seite ist jetzt eine riesige Überschrift!").Wofür steht das "Hypertext" in HTML?
Für Text, der Verlinkungen (Hyperlinks) zu anderen Texten enthält. Das war die revolutionäre Idee des Webs: Alles ist miteinander verknüpft.
CSS S1
Überblick: CSS ist der Stylist deiner Webseite. HTML baut das Haus (Wände, Türen). Es steht stabil, sieht aber grau und langweilig aus. CSS kommt und: Streicht die Wände blau (color: blue). Verlegt Parkett (background-image). Rückt die Möbel zurecht (margin, padding).
Einfach erklärt: CSS funktioniert über Selektoren (Auswähler) und Regeln.
Kann CSS rechnen?
Ja, ein bisschen (calc(100% - 20px)). Aber für richtige Logik ("Wenn X, dann Y") brauchst du JavaScript.Was ist "Responsive Design"?
Mit CSS "Media Queries" (@media (max-width: 600px)) sagst du: "Wenn der Bildschirm kleiner als 600px ist (Handy), dann mach die Schrift größer und zeige alles untereinander statt nebeneinander."Was ist Bootstrap / Tailwind?
CSS-Frameworks. Das sind fertige Sammlungen von CSS-Regeln. Statt alles selbst zu schreiben, nutzt du fertige Klassen wiebtn-primary(Bootstrap) odertext-red-500(Tailwind).
Browser S1
Überblick: Das Internet ist wie eine riesige Bibliothek. Webseiten sind die Bücher. Der Browser ist deine Lesebrille. Ohne ihn siehst du nur kryptischen Code (HTML). Der Browser übersetzt diesen Code in schöne Bilder, Texte und Videos. Die bekanntesten sind Google Chrome, Apple Safari, Microsoft Edge und Mozilla Firefox.
Einfach erklärt: Das wichtigste Feld ist oben: Die Adressleiste (URL-Bar). Dort gibst du ein, wo du hin willst (google.de). Moderne Browser haben auch: Tabs: Mehrere Seiten gleichzeitig offen. Lesezeichen: Merken von Lieblingsseiten. Erweiterungen (Extensions): Miniprogramme wie Werbeblocker oder Passwort-Manager.
Ist Google ein Browser?
Nein. Google ist eine Suchmaschine. Chrome ist der Browser. Viele verwechseln das, weil Chrome von Google stammt und die Suche eingebaut hat.Was ist der Inkognito-Modus?
Er speichert keinen Verlauf und keine Cookies auf deinem PC. Aber Achtung: Dein Chef und dein Internetanbieter sehen trotzdem, was du machst! Er macht dich nicht unsichtbar im Netz.Warum frisst Chrome so viel RAM?
Wegen der Isolation (Sandbox). Jeder Tab ist ein eigener Prozess. Wenn ein Tab abstürzt, reißt er die anderen nicht mit. Das kostet aber viel Speicher.
DOM (Document Object Model) S1
Überblick: Wenn der Browser dein HTML liest: Hallo ...baut er daraus im Speicher einen Stammbaum: div (Vater) h1 (Kind) "Hallo" (Text-Kind) Diesen Baum nennt man DOM. JavaScript kann diesen Baum verändern. h1.style.color = "red" Der Browser malt den Baum dann neu. Ohne DOM wäre JavaScript blind und könnte nichts auf der Seite ändern.
Einfach erklärt: Das wichtigste Werkzeug: const elem = document.querySelector('.kopfzeile'); elem.innerHTML = 'Neuer Text'; elem.addEventListener('click', ...);
BOM (Browser Object Model)?
Nicht verwechseln. BOM istwindow,navigator,location(Dinge, die zum Browser gehören, nicht zum HTML-Inhalt). DOM istdocument.document.write()?Todsünde. Löscht oft die ganze Seite oder blockiert das Laden. NIEMALS nutzen. NutzeappendChild().Ist DOM = HTML?
Nicht ganz. HTML ist der Text in der Datei. DOM ist das Objekt im Speicher. Der Browser kann Fehler im HTML korrigieren (z. B. fehlendes</div>ergänzen), sodass der DOM "sauberer" ist als das HTML.
Schritt 1.2.3.1 / 65
Node.js
Die Laufzeitumgebung für JavaScript auf dem Server.
S1
Schritt 1.2.3.1 / 65
Node.js
Die Laufzeitumgebung für JavaScript auf dem Server.
1. Verstehen
Backend-Nachtrag: Für absolute Anfänger ist Node.js dann verständlich, wenn zuerst klar ist, ob es sich um ein Werkzeug, eine Rolle, einen Ablauf oder einen Speicherort handelt. Schreibe dir diesen Begriff neben ein kleines Beispiel: Browser sendet Anfrage, Server verarbeitet sie, Datenbank speichert etwas, Antwort kommt zurück. Dadurch bekommt der Begriff einen Platz im Gesamtbild, statt nur wie ein weiteres Fremdwort zu wirken. JavaScript lief früher nur im Browser (Frontend) - für bunte Buttons und Animationen. 2009 hatte jemand eine Idee: "Warum nehmen wir den JavaScript-Motor aus Chrome raus und lassen ihn auf einem Server laufen?" Zack, Node.js war geboren. Jetzt kannst du mit derselben Sprache, mit der du Webseiten hübsch machst (JS), auch Datenbanken abfragen und Server bauen (Backend). Das war eine Revolution.
Merksatz: Eine Laufzeitumgebung, die es ermöglicht, JavaScript außerhalb des Browsers (z. B. auf Servern) auszuführen.
2. Anwenden
Praxis-Nachtrag: Nutze Node.js in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Node.js auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Wenn du Node.js installierst, hast du auch npm (Node Package Manager) dabei.
Das ist der größte "App Store" für Programmierer der Welt.
Du brauchst eine Bibliothek, um PDF-Dateien zu erstellen? npm install pdfkit. Fertig.
Millionen fertige Bausteine stehen kostenlos bereit.
Node ist extrem beliebt für Webserver (mit Express.js) und Echtzeit-Apps (Chats, Spiele), weil es sehr schnell auf viele gleichzeitige Anfragen reagiert.
3. Technisch einordnen
1. V8 Engine
Node.js basiert auf V8, der JavaScript-Engine von Google Chrome. V8 kompiliert JS direkt in Maschinencode (sehr schnell). Node hat C++ Bindings hinzugefügt, damit JS Dinge tun kann, die es im Browser nicht durfte: Dateien auf der Festplatte lesen, Netzwerk-Sockets öffnen.
2. Event Driven (Nicht-Blockierend)
Der Clou an Node: Es wartet nicht. Klassischer Server (PHP): "Lese Datei..." (Server schläft 2 Sekunden) "...Datei da. Sende Antwort." Node.js: "Lese Datei. Ich mach solange was anderes!" (Verarbeitet 1000 andere User). "Ah, Datei ist da! Sende Antwort." Deshalb kann ein kleiner Node-Server 10.000 User gleichzeitig bedienen, wo andere Server zusammenbrechen.
4. Vertiefen
1. Libuv und der Thread Pool
Node.js rühmt sich, "Single-Threaded" zu sein. Das ist eine Halbwahrheit.
Dein geschriebener JavaScript-Code (V8) und der Event-Loop laufen auf einem gigantischen Main Thread. Dort passiert Mathe und Kontrollfluss.
Das Problem: Wenn du eine Datei liest (fs.readFile) bremst das eigentlich den Thread. Warum blockiert Node nicht?
Wegen libuv (der in C geschriebenen C/C++ Bibliothek). Libuv unterhält unsichtbar einen Pool von (standardmäßig 4, konfigurierbaren) echten C-Worker-Threads. Die Festplattenoperation oder teure Crypto-Hashes werden in diesen Thread-Pool ausgelagert. Libuv erledigt die Schwerstarbeit im asynchronen Hintergrund und schmeißt das Ergebnis als Callback per Queue zurück in den V8 Main-Thread.
2. Event Loop Phases
Die Event-Loop ist nicht ein simpler Kreis, sie ist orchestriert in Phasen (Phases).
- Timers: Führt
setTimeout()aus, falls abgelaufen. - Pending Callbacks: Erledigt verzögerte System-Call Errors (TCP refused).
- Poll: Der wichtigste Block! Hier wartet Node aktiv eintreffende Web-Requests und I/O Operationen ab. Node verbringt hier oft 90% seiner Lebenszeit.
- Check: Führt
setImmediate()Callbacks extrem fix aus. - Close:
socket.on('close'). Das Unwissen vieler Node-Coder: Eine endlosewhile(true)-Schleife blockiert z.B. Phase 3 komplett. Weder Timers noch I/O werden je wieder gefeuert ("Event Loop blocked"), und der Webserver stirbt, obwohl die CPU auf 100% rattert.
3. CommonJS vs. ES Modules
Das Node-Ökosystem ist akut in einem Bürgerkrieg gespalten.
Anfangs existierte nur das proprietäre CommonJS. Syntax: const fs = require('fs'). ES lädt synchron zur Laufzeit.
Die Browser-Welt erfand später ESModules (ESM): import fs from 'fs'. ESM zwingt Engine und Parser zu einer vorherigen statischen statischen Analyse des gesamten Modul-Baums zur Compilezeit, weswegen man Module "Tree-Shaken" (toten Code eliminieren) kann, bevor der Code überhaupt losrennt.
Heute zwingt Node Entwickler, in der package.json über das Feld "type": "module" gnadenlos zu deklarieren, ob das gesamte Projekt CJS oder ESM spricht. Das mischen beider Welten endet oft in grauenhaften ERR_REQUIRE_ESM Crashes, was Library-Autoren zum Bau von Dual-Build Packages zwingt.
5. Prüfen
Ist Node.js eine Programmiersprache?
Nein, es ist eine Laufzeitumgebung (Runtime) für die Sprache JavaScript. Wie ein Motor für den Treibstoff.Was ist Deno / Bun?
Moderne Konkurrenten zu Node.js. Sie wurden z. T. vom selben Erfinder entwickelt, um Designfehler von Node zu korrigieren (sicherer, schneller, TypeScript eingebaut). Aber Node ist immer noch der Platzhirsch.Warum nutzen Startups Node.js?
Weil man nur eine Sprache für alles braucht (Frontend + Backend). Man muss nicht Java-Entwickler UND JS-Entwickler einstellen. "JavaScript Everywhere".
Zusammenfassung
- Backend-Nachtrag: Für absolute Anfänger ist Node.js dann verständlich, wenn zuerst klar ist, ob es sich um ein Werkzeug, eine Rolle, einen Ablauf oder einen Speicherort handelt. Schreibe dir diesen Begriff neben ein kleines Beispiel: Browser sendet Anfrage,...
- Praxis-Nachtrag: Nutze Node.js in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Node.js auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest...
Optionale Praxisaufgabe
- Erkläre Node.js in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Node.js relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.4 / 65
Go
Eine kompakte Sprache für performante Server und Infrastruktur.
S1
Schritt 1.2.4 / 65
Go
Eine kompakte Sprache für performante Server und Infrastruktur.
1. Verstehen
Einsteiger-Brücke: Wenn du Go zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Go ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Go ist eine kompakte Programmiersprache, die häufig für performante Server, CLI-Tools und Infrastruktur genutzt wird.
Merksatz: Go ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Go ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Go ist bewusst einfach gehalten. Es startet schnell, ist gut für Serverprogramme und lässt sich leicht als einzelne Datei ausliefern.
Typische Anfängerfrage: Woran erkenne ich Go im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Go steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Go nutzt Goroutines und Channels für Nebenläufigkeit. Das hilft bei vielen parallelen Netzwerkaufgaben.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Go zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Go funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Professionelle Go-Backends achten auf Context-Cancelation, Fehlerbehandlung, Interfaces, Profiling, Race Conditions und kleine, gut testbare Pakete.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Go ohne Fachsprache.
In einfachen Worten: Go ist eine kompakte Programmiersprache, die häufig für performante Server, CLI-Tools und Infrastruktur genutzt wird. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Go praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Go ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem programmiersprache und api. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Go zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Go ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Go steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre Go in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Go relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.2.5 / 65
PHP
Eine klassische Websprache für Hosting, CMS und Webanwendungen.
S1
Schritt 1.2.5 / 65
PHP
Eine klassische Websprache für Hosting, CMS und Webanwendungen.
1. Verstehen
Einsteiger-Brücke: Wenn du PHP zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. PHP ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
PHP ist eine Web-Programmiersprache, die besonders im klassischen Hosting und bei Content-Management-Systemen verbreitet ist.
Merksatz: PHP ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. PHP ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Viele Webseiten laufen mit PHP, zum Beispiel WordPress. PHP-Code erzeugt HTML oder beantwortet Anfragen vom Webserver.
Typische Anfängerfrage: Woran erkenne ich PHP im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: PHP steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Moderne PHP-Projekte nutzen Composer, Frameworks wie Laravel oder Symfony, Typisierung, Tests und klare Projektstruktur.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird PHP zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob PHP funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Experten achten auf PHP-FPM, Opcode Cache, Request-Lifecycle, Security, Dependency-Updates, Datenbankzugriffe und Hosting-Grenzen.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre PHP ohne Fachsprache.
In einfachen Worten: PHP ist eine Web-Programmiersprache, die besonders im klassischen Hosting und bei Content-Management-Systemen verbreitet ist. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem PHP praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und PHP ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem programmiersprache und web server. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du PHP zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. PHP ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: PHP steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche...
Optionale Praxisaufgabe
- Erkläre PHP in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem PHP relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 1.3 / 65
Framework
Der fertige Rahmen, der Backend-Entwicklung strukturiert.
S1
Schritt 1.3 / 65
Framework
Der fertige Rahmen, der Backend-Entwicklung strukturiert.
1. Verstehen
Eine Library ist wie ein Möbelstück, das du in dein Haus stellst. Ein Framework ist das Fertighaus. Die Wände, Leitungen und Türen sind schon da. Du darfst nur noch die Tapete aussuchen und Möbel reinstellen. Vorteil: Du musst dich nicht um Statik (Sicherheit, Datenbank-Verbindung) kümmern. Das steht schon. Nachteil: Du kannst keine Wand einreißen. Du musst dich an den Grundriss halten. Wer ein Framework nutzt, gibt Kontrolle ab, gewinnt aber Geschwindigkeit.
Merksatz: Eine halbfertige Softwarearchitektur, die den Kontrollfluss der Anwendung vorgibt (Inversion of Control) und Platzhalter für kundenspezifischen Code bereitstellt.
2. Anwenden
Praxis-Nachtrag: Nutze Framework in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Framework auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Beispiele:
- Web: Django (Python), Ruby on Rails, Angular (JS).
- Game: Unity, Unreal Engine.
Du schreibst keinen Start-Code (main()).
Du füllst Lücken: "Hier ist mein Controller-Code."
Das Framework startet, lädt deinen Code und ruft ihn im richtigen Moment auf.
3. Technisch einordnen
1. Opinionated vs. Unopinionated
- Opinionated (Django/Angular): "Es gibt genau einen Weg, das zu tun." Best Practices sind erzwungen. Gut für Teams (Code sieht immer gleich aus).
- Unopinionated (Flask/React): "Mach was du willst. Hier ist ein Router, den Rest such dir selbst." Flexibler, aber man muss mehr entscheiden (und kann mehr falsch machen). React ist eigentlich eine Library, wird aber oft wie ein Framework genutzt.
2. Lock-In Effekt
Wenn du deine App in Angular baust, bist du mit Angular verheiratet. Ein Wechsel zu React bedeutet: Alles wegwerfen und neu schreiben. Bei Libraries ist der Wechsel einfacher (nur eine Funktion tauschen). Wähle dein Framework weise! Es ist eine Entscheidung für Jahre.
3. Lifecycle Hooks
Da das Framework den Ablauf kontrolliert, gibt es dir "Haken" (Hooks), wo du eingreifen darfst.
ngOnInit (Angular), componentDidMount (React), on_request_start (Flask).
Du musst den Lebenszyklus des Frameworks verstehen, sonst läuft dein Code zur falschen Zeit (z. B. bevor die Datenbank da ist).
4. Vertiefen
1. Inversion of Control (Das Hollywood-Prinzip)
Der technische Unterschied zwischen Library und Framework ist radikal: IOC (Inversion of Control) oder das "Don't call us, we call you" Prinzip.
Mit einer Library (z.B. Lodash) schreibst du den Main-Loop. Dein Code hat die Kontrolle. Du holst dir via import nur Werkzeuge aus der Kiste.
Beim Framework (z.B. Spring Boot) liegt der Main-Loop tief im Spring-Code verborgen. Das Framework bootet, scannt per Reflection all deine Java-Klassen nach @Controller Annotationen, baut intern eine massive Dependency-Graphen Tabelle auf, öffnet den Webserver und weckt deinen kleinen Codeblock erst genau aus dem Schlaf auf, wenn der HTTP Request von Client X hereinfliegt. Das Framework ist der Boss.
2. Event-Loop Blockierung in Single-Thread Frameworks
Moderne JavaScript-Frameworks (Node.js/Express) laufen Single-Thread (ein einziger CPU Core für 10.000 User). Ihre Macht ist asynchrone I/O ("Warten auf DB frisst keine CPU"). Die Gefahr liegt im Framework-Szenario, wenn der Dev CPU-schwere Logik in den Framework-Controller zwängt (z.B. Bild-Kompression 4K). Der V8-Event Loop wird dabei blockiert (Hogging). Während dein Controller für User A das Bild 6 Sekunden rechnet, wartet User B auf den Login. Frameworks reagieren extrem fragil auf synchrone CPU-Blocker (Das Framework kann andere HTTP-Requests nicht mehr reinlassen). Lösung hier: Worker Threads via Message Queue abspalten (das Framework bleibt exklusiv für Ingress-Triage).
3. Dependency Injection Containern
Was ist das "Herz" fast aller Backend-Frameworks (Spring/Angular/NestJS)? Ein Container.
Statt new DatabaseService() hart in deiner Klasse aufzurufen, schreibst du nur in den Konstruktor: constructor(private db: DatabaseService).
Das Framework bootet ("Wiring Phase"), liest den Architekturbaum (IoC Container), instanziiert den Service als Singleton exakt ein einziges Mal und spritzt (inject) diesen in alle 50 Controller, die ihn anfragen. Tauscht du später MySQL gegen MongoDB aus, änderst du nur EINE Zeile in der Framework-Config. Der Container-Bootloader injiziert Magie-artig den neuen Driver umsonst in alle Klassen.
5. Prüfen
Boilerplate?
Frameworks reduzieren Boilerplate (langweiligen Standard-Code). Du musst nicht 50 Zeilen schreiben, um einen Server zu starten. Ein Befehl reicht.Meta-Framework?
Next.js oder Nuxt. Das sind Frameworks, die auf Bibliotheken (React/Vue) aufbauen, um sie noch mächtiger zu machen (SSR, Routing inklusive).Micro-Framework?
Ein minimalistisches Framework (Express.js, Flask). Bietet nur das Allernötigste (HTTP Routing). Der Rest ist dir überlassen. Ideal für Microservices.
Zusammenfassung
- Eine Library ist wie ein Möbelstück, das du in dein Haus stellst. Ein Framework ist das Fertighaus. Die Wände, Leitungen und Türen sind schon da. Du darfst nur noch die Tapete aussuchen und Möbel reinstellen. Vorteil: Du musst dich nicht um Statik...
- Praxis-Nachtrag: Nutze Framework in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Framework auf, was würde ohne diesen Baustein fehlen, und welchen Fehler...
Optionale Praxisaufgabe
- Erkläre Framework in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Framework relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Code S1
Überblick: Code sind Anweisungen, die ein Computer ausführen oder übersetzen kann. Menschen schreiben Code in Programmiersprachen, damit Software ein bestimmtes Verhalten bekommt. Code kann sehr klein sein, etwa eine Formel, oder riesig wie ein Betriebssystem.
Einfach erklärt: Entwickler schreiben Code, testen ihn, lesen ihn gegenseitig und speichern ihn in Versionsverwaltung. Guter Code ist nicht nur "funktioniert", sondern auch verständlich, testbar und aenderbar. Kommentare helfen nur dort, wo die Absicht nicht sofort klar ist.
Tiefer verstanden: Code besteht aus Syntax, Namen, Kontrollfluss, Datenstrukturen und Schnittstellen. Kontrollfluss nutzt oft loop oder Bedingungen; saubere Grenzen entstehen durch interface, function und gut benannte Daten. Er wird interpretiert, kompiliert oder zur Laufzeit ausgeführt. Qualität entsteht durch klare Verantwortlichkeiten, kleine Funktionen, Tests, Linting, Reviews und sichere Abhaengigkeiten.
Praxisgrenze: Code kann korrekt aussehen und trotzdem falsche Annahmen enthalten. Besonders gefaehrlich sind versteckte Seiteneffekte, globale Zustaende, unklare Fehlerbehandlung und fehlende Tests. In größeren Systemen ist Lesbarkeit oft wichtiger als eine besonders clevere Kurzlösung.
Ist Code dasselbe wie Software?
Nein. Code ist ein Teil von Software. Software umfasst auch Daten, Konfiguration, Assets, Builds und Betrieb.Was macht Code wartbar?
Klare Namen, kleine Einheiten, Tests, einfache Struktur und dokumentierte Annahmen.Was ist eine typische Falle?
Cleveren Code zu schreiben, den später niemand sicher ändern kann.
MVC (Model View Controller) S2
Überblick: Wie verhindert man "Spaghetti-Code" (alles durcheinander)? Man teilt den Code in drei Schubladen: 1. Model (Daten): Das Gehirn. ("User hat Name und Email"). Kümmert sich um die Datenbank. 2. View (Anzeige): Das Gesicht. ("Zeige Name fettgedruckt an"). HTML/CSS. Weiß nichts von Datenbanken. 3. Controller (Chef): Der Vermittler. User klickt Button (Kommando an Controller). Controller sagt Model: "Hol Daten". Controller sagt View: "Zeig diese Daten an".
Einfach erklärt: Klassisch (Ruby on Rails, Laravel, Django): URL /users/1 ruft UserController auf. Controller fragt UserModel nach User 1. Controller nimmt Daten und rendert userview.html. Browser zeigt HTML.
Django MVT?
Django nennt es "Model View Template". Model=Model, View=Controller, Template=View. Verwirrend, aber das gleiche Prinzip.Warum MVC?
Wartbarkeit. Wenn du die Datenbank (Model) wechselst, musst du die View nicht anfassen. Wenn du das Design änderst, bleibt die Logik heil.Ist MVC tot?
Im Backend (Spring, Rails) quicklebendig. Im Frontend durch React (Flux/Redux/Components) weitgehend abgelöst.
Schritt 1.4 / 65
Library (Bibliothek)
Eine Programmbibliothek für einzelne Aufgaben.
S1
Schritt 1.4 / 65
Library (Bibliothek)
Eine Programmbibliothek für einzelne Aufgaben.
1. Verstehen
Backend-Nachtrag: Für absolute Anfänger ist Library (Bibliothek) dann verständlich, wenn zuerst klar ist, ob es sich um ein Werkzeug, eine Rolle, einen Ablauf oder einen Speicherort handelt. Schreibe dir diesen Begriff neben ein kleines Beispiel: Browser sendet Anfrage, Server verarbeitet sie, Datenbank speichert etwas, Antwort kommt zurück. Dadurch bekommt der Begriff einen Platz im Gesamtbild, statt nur wie ein weiteres Fremdwort zu wirken.
Du willst das Datum von "heute" formatieren ("27.10.2023").
Das ist kompliziert (Schaltjahre, Zeitzonen).
Statt es selbst zu programmieren, gehst du in die Bibliothek.
Du leihst dir das Buch "Datums-Rechnung" (Library).
Du kopierst die Funktion formatDate().
Fertig.
Eine Library ist dummer Code, der im Regal liegt, bis du ihn rufst.
Du hast die Kontrolle.
Merksatz: Eine Sammlung von vorgefertigten Funktionen und Klassen, die von einem Programm aufgerufen werden können, um bestimmte Aufgaben (z. B. Mathematik, I/O) zu lösen.
2. Anwenden
Praxis-Nachtrag: Nutze Library (Bibliothek) in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Library (Bibliothek) auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Installation:
npm install date-fns (JS)
pip install requests (Python)
Diese Tools laden die Library aus dem Internet in deinen node_modules oder site-packages Ordner.
Nutzung:
import { format } from 'date-fns';
format(new Date(), 'dd.MM.yyyy');
3. Technisch einordnen
1. Inversion of Control (IoC)
Der Unterschied zum Framework.
- Library: Du rufst den Code. (
main() -> library()). Du bist der Chef. - Framework: Der Code ruft dich. (
framework() -> deineFunktion()). Das Framework ist der Chef ("Hollywood Principle: Don't call us, we'll call you").
2. Dependency Hell
Du nutzt Library A. Library A nutzt Library B (Version 1.0). Du nutzt auch Library C. Library C nutzt Library B (Version 2.0). Konflikt! Dein Projekt braucht B in zwei Versionen gleichzeitig. In Node.js gelöst (Nested dependecies). In Java/Python oft ein Albtraum ("Diamond Dependency").
3. Tree Shaking
Moderne Libraries (Lodash, date-fns) sind modular. Wenn du nur eine Funktion importierst, wirft der Bundler (Webpack) den Rest der Library beim Bauen weg. Das hält die App klein. Librarys, die das nicht unterstützen ("Monolithen"), blähen deine App auf.
4. Vertiefen
1. Static vs. Dynamic Linking (Unter der Haube)
Wie wird die Library im System physikalisch mit deinem Code vereint?
- Static Linking: Der Compiler (
gcc) lädt sich die C-Library (z. B. eine Kompressionslib.a) beim Bauen herunter und preßt alle Einsen und Nullen der Library direkt in deine.exeDatei. Die Datei wird 15 Megabyte groß. Sie läuft danach absolut überall ("Standalone"). - Dynamic Linking: Die
.exeder Library bleibt extrem schlank (1 Megabyte). Im Code steht nur eine Meta-Brücke (Pointer). Das Betriebssystem (Windows) ist dafür verantwortlich, dass zwingend eine.dll(Dynamic Link Library) oder auf Linux eine.so(Shared Object) auf der Festplatte des Users zur Laufzeit vorliegt. Fehlt diese DLL beim Doppelklick auf dem Endkunden-Rechner, spuckt Windows den fatalen "x.dll was not found" Error.
2. Dependency Resolution Algorithms (NP-Complete)
Installierst du in Node ein Paket npm i express, zieht npm Abhängigkeiten an. express v4 verlangt cookie-parser v1.4, welcher wiederum path-to-regexp v0.1 anfordert.
Das Finden einer perfekten, kollisionsfreien Versionen-Matrix aus zehntausenden Repositories ist in der theoretischen Informatik ein NP-Complete Problem (vergleichbar mit dem Rucksack- oder Sudoku-Problem).
Der Paketmanager (npm, cargo, pip) berechnet zur Installationszeit über komplexe SAT-Solver oder Heuristiken einen Baum (Dependency Graph), evaluiert semantische Locks (^1.4.2) und friert die gefundene mathematische Kombination zwingend ins package-lock.json ("Lockfile") ein. Das sichert denselben Determinismus ("Es baut bei mir auf dem Rechner!") wenn ein Kollege Jahre später das Projekt fortsetzt.
3. Monorepos vs. Polyrepos
Firmen bauen oft dutzende eigene Libraries ("LoggingLib", "DesignSystemLib"). Wenn "LoggingLib" aktualisiert, muss man es sofort mühsam aus dem Artifactory via Build-Pipelines und Bump-Commits in 80 andere Apps ziehen. Um das "Versionierungs"-Chaos zu beherrschen, pushen Big-Tech Firmen wie Google auf Monorepo-Tools (wie Turborepo oder Nx). Statt 80 Repos liegt die Library und all ihre konsumierenden 80 Frontend/Backend-Apps in einem einzigen gewaltigen Git. Verändert man die API der Library um 15:00 Uhr, schreit der interne Compiler sofort das Frontend an, man passt beide Verzeichnisse in einem Rutsch an, und ein einziger "Atomic Commit" stellt sicher, dass Versionierungskonflikte untereinander der Vergangenheit angehören.
5. Prüfen
Dynamic Linking (DLL / .so)?
Das Betriebssystem lädt die Library nur einmal in den RAM. Alle Programme teilen sie sich. Spart RAM. (Static Linking: Jedes Programm hat seine eigene Kopie in der .exe).Transitive Dependency?
Eine Library, die ich nicht direkt installiert habe, die aber von einer meiner Libraries gebraucht wird. Oft Quelle von Sicherheitslücken (siehelog4j).StdLib?
Standard Library. Die "Batterien", die bei der Sprache dabei sind (z. B.math,fsin Node). Braucht keine Installation.
Zusammenfassung
- Backend-Nachtrag: Für absolute Anfänger ist Library (Bibliothek) dann verständlich, wenn zuerst klar ist, ob es sich um ein Werkzeug, eine Rolle, einen Ablauf oder einen Speicherort handelt. Schreibe dir diesen Begriff neben ein kleines Beispiel: Browser...
- Praxis-Nachtrag: Nutze Library (Bibliothek) in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Library (Bibliothek) auf, was würde ohne diesen Baustein fehlen,...
Optionale Praxisaufgabe
- Erkläre Library (Bibliothek) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Library (Bibliothek) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Quellcode S1
Überblick: Quellcode ist der von Menschen lesbare Text, aus dem Software entsteht. Er enthält Anweisungen, Namen, Struktur und Kommentare. Aus Quellcode wird je nach Sprache direkt laufendes Verhalten oder ein Build-Artefakt.
Einfach erklärt: Teams speichern Quellcode in Git, prüfen Änderungen per Review und bauen daraus Programme, Webseiten oder Serverdienste. Eine kleine Änderung am Quellcode kann große Wirkung haben. Deshalb sind Tests, Versionierung und nachvollziehbare Commits wichtig.
Tiefer verstanden: Quellcode wird geparst, interpretiert oder kompiliert. Er kann Abhaengigkeiten importieren, Konfiguration lesen und Artefakte erzeugen. Professionelle Projekte trennen Quellcode von generierten Dateien, Secrets und lokalen Build-Ergebnissen.
Praxisgrenze: Nicht alles, was für Software wichtig ist, steht im Quellcode: Infrastruktur, Datenbankzustand, Secrets, Feature Flags und externe Dienste zaehlen ebenfalls. Riskant sind lokale Pfade, harte Zugangsdaten und generierte Dateien, die versehentlich als Quelle behandelt werden.
Warum ist Git für Quellcode wichtig?
Git macht Änderungen nachvollziehbar und erlaubt Zusammenarbeit, Reviews und Rueckverfolgung.Ist generiertes HTML immer Quellcode?
Nicht unbedingt. In einem Static-Site-Projekt kann Markdown die Quelle sein und HTML nur das erzeugte Ergebnis.Was gehört nicht in Quellcode?
Private Secrets, lokale absolute Pfade und nicht benötigte generierte Artefakte.
Funktion S1
Überblick: Eine Funktion ist ein benannter Codeblock, der eine Aufgabe erledigt. Sie kann Eingaben bekommen, etwas berechnen und ein Ergebnis zurückgeben. Dadurch muss man dieselbe Logik nicht immer wieder neu schreiben.
Einfach erklärt: Statt dieselbe Berechnung dreimal zu kopieren, schreibt man eine Funktion wie berechnePreis(). Dann kann der Code diese Funktion an mehreren Stellen aufrufen. Gute Funktionen haben klare Namen, wenige Aufgaben und vorhersehbares Verhalten.
Tiefer verstanden: Funktionen können Parameter, Rueckgabewerte, Seiteneffekte und Fehler haben. In funktionaler Programmierung versucht man, Seiteneffekte zu reduzieren und Funktionen wie mathematische Abbildungen zu behandeln. In Serverless-Systemen kann eine Funktion sogar die kleinste Deployment-Einheit sein.
Praxisgrenze: Zu große Funktionen werden schwer testbar und verstecken Verantwortlichkeiten. Zu kleine oder schlecht benannte Funktionen zerreissen den Lesefluss. Kritisch sind Funktionen, die heimlich globale Zustaende ändern oder bei gleicher Eingabe unterschiedliche Ergebnisse liefern.
Warum nutzt man Funktionen?
Sie machen Code wiederverwendbar, testbar und besser strukturierbar.Was ist ein Seiteneffekt?
Eine Funktion ändert etwas ausserhalb ihres Rueckgabewerts, etwa eine Datei, Datenbank oder globale Variable.Was ist eine typische Falle?
Eine Funktion erledigt zu viele Aufgaben und wird dadurch schwer verständlich und schwer testbar.
SDK (Software Development Kit) S1
Überblick: Wenn du ein IKEA-Regal bauen willst, bekommst du nicht nur das Holz. Du bekommst Schrauben, einen Inbus-Schlüssel und eine Anleitung. Das ist ein Kit. Das SDK ist der Werkzeugkoffer für eine bestimmte Plattform (z. B. Android). Es enthält: 1. Libraries: Code-Bausteine ("Kamera öffnen"). 2. Tools: Debugger, Emulator ("Handy auf dem PC simulieren"). 3. Dokumentation: Die Anleitung. Ohne Android SDK kannst du keine Android Apps bauen.
Einfach erklärt: Beispiele: JDK (Java Development Kit): Brauchst du, um Java zu kompilieren. (Die JRE reicht nur zum Ausführen). Android SDK: Enthält adb (Android Debug Bridge), Emulator, Gradle Plugins. AWS SDK: Damit dein Python-Code mit Amazon S3 reden kann (boto3).
NDK (Native Development Kit)?
Spezielles Android-Kit für C++ Code. Braucht man nur für High-Performance (Spiele, Audio-Processing). Normalerweise nimmt man das Java/Kotlin SDK.Headless SDK?
Ein SDK ohne UI. Z. B. Stripe SDK für Zahlungen im Hintergrund. Andere (z. B. PayPal) bringen fertige UI-Screens mit.Muss ich es installieren?
Ja. Ein SDK liegt lokal auf deinem Rechner. Eine API liegt im Netz.
Schritt 1.5 / 65
Runtime
Die Umgebung, in der Code wirklich läuft.
S1
Schritt 1.5 / 65
Runtime
Die Umgebung, in der Code wirklich läuft.
1. Verstehen
Einsteiger-Brücke: Wenn du Runtime zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Runtime ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Eine Runtime ist die Umgebung, in der ein Programm tatsächlich ausgeführt wird.
Merksatz: Runtime ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Runtime ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Der Code allein reicht nicht. Er braucht eine Laufzeitumgebung, die ihn versteht und startet.
Typische Anfängerfrage: Woran erkenne ich Runtime im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Runtime steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Beispiele sind Node.js für JavaScript, die JVM für Java oder der Python-Interpreter für Python.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Runtime zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Runtime funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Runtime-Versionen beeinflussen Performance, Sicherheit, Bibliothekskompatibilität, Speicherverhalten und Deployment.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Runtime ohne Fachsprache.
In einfachen Worten: Eine Runtime ist die Umgebung, in der ein Programm tatsächlich ausgeführt wird. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Runtime praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Runtime ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem node js und java. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Runtime zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Runtime ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Runtime steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht,...
Optionale Praxisaufgabe
- Erkläre Runtime in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Runtime relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 2 / 65
Server
Wo Anwendungen laufen und Anfragen verarbeitet werden.
S1
Schritt 2 / 65
Server
Wo Anwendungen laufen und Anfragen verarbeitet werden.
1. Verstehen
Ein Server ist ein Diener (engl. "to serve" = dienen). Es ist ein Computer, der darauf wartet, dass andere (Clients) etwas von ihm wollen.
- Webserver: "Zeig mir diese Webseite!"
- Mailserver: "Nimm meine E-Mail an!"
- Fileserver: "Speichere diese Datei!"
Technisch ist jeder Computer ein Server, wenn er Dienste anbietet. Auch dein Laptop kann ein Server sein. Aber meistens meint man damit starke, laute Rechner ohne Bildschirm, die in klimatisierten Kellern (Rechenzentren) stehen.
Merksatz: Ein Computer oder Programm, das Ressourcen (Daten, Dienste) für andere bereitstellt.
2. Anwenden
Im Büro steht oft ein "Serverraum". Da steht der Firmenserver. Darauf liegen alle Word-Dateien, damit alle Kollegen gleichzeitig darauf zugreifen können. Wenn der Server abstürzt, kann keiner arbeiten ("Das Netz ist weg").
Server laufen 24/7. Sie werden nie ausgeschaltet. Sie haben spezielle Hardware:
- Redundante Netzteile: Wenn eins kaputt geht, übernimmt das zweite ohne Unterbrechung.
- ECC-RAM: Arbeitsspeicher mit Fehlerkorrektur.
- RAID: Festplatten-Spiegelung (wenn eine platzt, sind die Daten noch da).
Praxisroutine
In der Praxis lernst du Server, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Physisch vs. Virtuell
Früher: 1 App = 1 Blechkiste. (Teuer, Platzverschwendung). Heute: Virtualisierung. Auf einem physischen Server laufen 50 virtuelle Server (VMs). Für die Software fühlt es sich an wie ein eigener PC, aber eigentlich teilen sie sich die Hardware.
2. Client-Server-Modell
Das Grundprinzip des Internets. Der Client (Browser) sendet einen Request (Anfrage). Der Server sendet eine Response (Antwort). Der Server ist passiv (er wartet). Er spricht dich nie von sich aus an (außer bei modernen Push-Techniken wie WebSockets).
Technische Einordnung im System
Technisch ist Server nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. Load Balancing und High Availability (HA)
Wenn Amazon Black Friday hat, reicht nicht ein Server. Es sind Tausende. Wie verteilt man die Last? Mit einem Load Balancer (z.B. Nginx oder HAProxy). Das ist ein "Proxy-Server", der als einziger die echte öffentliche IP-Adresse (oder Anycast) hat. Alle Requests schlagen dort auf. Der Load Balancer schaut in seinen Pool (die Backend-Server 1 bis 100), prüft, welcher gerade am wenigsten CPU-Last hat, und reicht die HTTP-Anfrage transparent an ihn durch ("Round-Robin" oder "Least Connections"). Zusätzlich macht er Health Checks: Antwortet Server 4 nicht auf ein Ping, wird er aus dem Pool geworfen. Der Kunde merkt davon gar nichts (High Availability).
2. Containerisierung (Docker & Kubernetes)
Das Problem von virtuellen Maschinen (VMs): Jeder Server bringt sein eigenes komplettes Betriebssystem (OS) mit (und verschwendet GBs an RAM). Heute verpackt man Software in Container (meist Docker). Ein Container abstrahiert das OS weg. Er enthält nur die App (z.B. node.js) und ihre direkten Abhängigkeiten (libraries), teilt sich aber den Kernel mit dem Wirts-System ("Host"). Er startet in Millisekunden statt Minuten. Systeme wie Kubernetes orchestrieren tausende solcher Container über mehrere physische Server und fahren sie je nach Last hoch und wieder runter.
3. IaaS, PaaS, SaaS
Miete in der Cloud kommt in verschiedenen Flavors (Shared-Responsibility-Modell):
- IaaS (Infrastructure as a Service): AWS / Hetzner. Du bekommst ein nacktes Blech mit Strom. Das OS und Software musst du verwalten, du bist komplett selbst für das Backup verantwortlich.
- PaaS (Platform as a Service): Heroku. Du wirfst deinen Code auf die Plattform. Um Node.js, Webserver-Konfiguration und Load Balancing kümmert sich der Provider.
- SaaS (Software as a Service): Microsoft 365, Dropbox. Du nutzt nur die fertige Software als User.
5. Prüfen
Braucht ein Server einen Bildschirm?
Nein. Man verwaltet ihn "headless" (kopflos) über das Netzwerk (Fernwartung mit SSH oder Remote Desktop). Ein Monitor steht nur für Notfälle im Serverraum.Was ist "Server Down"?
Der Server reagiert nicht. Gründe: Stromausfall, Internet weg, abgestürzt oder überlastet (DDoS).Warum sind Server so laut?
Wegen den Lüftern. Sie erzeugen enorme Hitze und müssen extrem gekühlt werden. Die kleinen Lüfter drehen mit 15.000 Umdrehungen pro Minute und klingen wie ein Triebwerk.
Zusammenfassung
- Ein Server ist ein Diener (engl. "to serve" = dienen). Es ist ein Computer, der darauf wartet, dass andere (Clients) etwas von ihm wollen. Webserver: "Zeig mir diese Webseite!" Mailserver: "Nimm meine E-Mail an!" Fileserver: "Speichere diese Datei!"
- Im Büro steht oft ein "Serverraum". Da steht der Firmenserver. Darauf liegen alle Word-Dateien, damit alle Kollegen gleichzeitig darauf zugreifen können. Wenn der Server abstürzt, kann keiner arbeiten ("Das Netz ist weg").
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre Server in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Server relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Computer S1
Überblick: Ein Computer ist ein Gerät, das Daten nach Anweisungen verarbeitet. Er nimmt Eingaben entgegen, rechnet oder entscheidet, speichert Ergebnisse und gibt Ausgaben zurück. Smartphones, Laptops, Server und viele Maschinen enthalten Computer.
Einfach erklärt: Im Alltag nutzt du Computer zum Schreiben, Lernen, Kommunizieren, Spielen, Automatisieren oder Analysieren. Technisch arbeiten dabei Prozessor, Arbeitsspeicher, Speichergeräte, Betriebssystem und Software zusammen. Wenn ein Teil ausfaellt oder überlastet ist, wirkt das ganze System langsam oder instabil.
Tiefer verstanden: Computer arbeiten digital mit Bits und Bytes. Die CPU fuehrt Befehle aus, RAM haelt aktive Daten bereit, SSDs speichern dauerhaft, und das Betriebssystem verwaltet Prozesse, Dateien, Treiber und Rechte. Netzwerke verbinden Computer mit anderen Systemen.
Praxisgrenze: Ein Computer ist nicht "intelligent", nur weil er schnell rechnet. Er folgt Modellen, Daten und Programmen. Fehler entstehen oft durch falsche Eingaben, kaputte Annahmen, Ressourcenlimits oder unsichere Konfiguration. Gute Diagnose trennt Hardware, Betriebssystem, Software und Netzwerk.
Was macht ein Computer grundsaetzlich?
Er verarbeitet Eingaben nach Anweisungen und erzeugt Ausgaben oder gespeicherte Ergebnisse.Warum braucht ein Computer ein Betriebssystem?
Das Betriebssystem verwaltet Hardware, Dateien, Programme, Speicher, Rechte und Schnittstellen.Was ist eine typische Diagnosefrage?
Ist das Problem Hardware, Betriebssystem, Software, Netzwerk oder Bedienung?
Netzwerk S1
Überblick: Ein Netzwerk verbindet Geräte, damit sie Daten austauschen können. Zuhause verbindet es Smartphone, Laptop, Drucker und Router. In Unternehmen verbindet es Arbeitsplaetze, Server, Cloud-Dienste und Sicherheitskomponenten.
Einfach erklärt: Wenn du eine Webseite oeffnest, läuft dein Gerät über WLAN oder LAN zum Router und weiter ins Internet. Im Betrieb prüfst du bei Störungen IP-Adresse, DNS, Gateway, Firewall, Kabel, WLAN-Signal und Zielserver. Netzwerke sind oft der unsichtbare Teil eines Problems.
Tiefer verstanden: Netzwerke arbeiten in Schichten: physische Verbindung, Datenlink, IP-Routing, Transportprotokolle und Anwendungsschicht. Wichtige Konzepte sind Subnetze, Ports, Routing, NAT, VLANs, Firewalls und Monitoring. Gute Netzwerke sind dokumentiert, segmentiert und beobachtbar.
Praxisgrenze: Netzwerkprobleme wirken oft wie Anwendungsfehler. Ein Timeout kann an DNS, Routing, Paketverlust, TLS, Rate Limits oder Firewall-Regeln liegen. Deshalb braucht Diagnose reproduzierbare Tests: Ping, Traceroute, DNS-Lookup, Logs und Messwerte statt Bauchgefühl.
Warum ist ein Router wichtig?
Er verbindet lokale Geräte mit anderen Netzwerken, meist mit dem Internet.Was prüfst du bei Netzwerkproblemen zuerst?
Verbindung, IP-Adresse, DNS, Gateway, Firewall und ob der Zielserver erreichbar ist.Was ist eine typische Falle?
Eine App für kaputt zu halten, obwohl DNS, Routing oder Firewall die Ursache sind.
Cloud Computing S1
Überblick: "Die Cloud" ist einfach nur der Computer von jemand anderem. Statt deine Fotos auf deiner Festplatte zu speichern, speicherst du sie auf den Festplatten von Google oder Apple. Statt einen teuren Server in den Keller zu stellen, mietest du Rechenpower bei Amazon (AWS).
Einfach erklärt: Wir nutzen die Cloud ständig: 1. SaaS (Software as a Service): Netflix, Gmail, Spotify. Die App läuft nicht bei dir, sondern auf deren Servern. 2. IaaS (Infrastructure as a Service): Als Firma mietest du "nackte" Server bei AWS, um darauf deine eigene Software laufen zu lassen. 3. Storage: Dropbox, Google Drive, iCloud. Deine Dateien sind überall verfügbar, egal ob Handy oder Laptop.
Wo sind meine Daten, wenn sie "in der Cloud" sind?
Auf physischen Servern in einem Rechenzentrum (Data Center), das meistens einem Tech-Giganten (Amazon, Google, Microsoft) gehört.Ist die Cloud sicher?
Meistens sicherer als dein eigener PC, weil Profis die Server bewachen. Aber: Du bist dafür verantwortlich, gute Passwörter zu nutzen (Shared Responsibility Model).Warum lieben Start-ups die Cloud?
Weil sie keine teure Hardware kaufen müssen (niedrige Investitionskosten = CAPEX) und sofort weltweit wachsen können.
CPU S1
Überblick: Die CPU (Central Processing Unit) ist das Gehirn deines Computers. Sie erledigt alle Denkaufgaben. Jedes Mal, wenn du die Maus bewegst, eine Webseite öffnest oder 1+1 rechnest, ist es die CPU, die das macht. Sie ist ein winziger Chip (kleiner als ein Keks), der aber Milliarden von Befehlen pro Sekunde ausführen kann.
Einfach erklärt: Beim Kauf eines PCs achtet man auf zwei Dinge: 1. Kerne (Cores): Wie viele Aufgaben kann er gleichzeitig machen? 2 Kerne = Du kannst surfen und Musik hören. 8 Kerne = Du kannst spielen, streamen und Videos schneiden gleichzeitig. 2. Taktfrequenz (GHz): Wie schnell denkt er? 3 GHz = 3 Milliarden Takte pro Sekunde. (Schneller = Besser für Spiele).
Was ist wichtiger: Viele Kerne oder viel GHz?
Kommt drauf an. Für Gaming oft GHz (Single-Core Speed). Für Videoschnitt und Multitasking eher Kerne (Multi-Core Speed).Warum wird die CPU heiß?
Weil Milliarden von Elektronen mit hoher Geschwindigkeit durch winzige Leiterbahnen flitzen. Der elektrische Widerstand erzeugt Wärme, die der Lüfter wegblasen muss.Was ist der Unterschied zur GPU (Grafikkarte)?
Die CPU ist ein Alleskönner (wenige, starke Kerne). Die GPU ist ein Spezialist für Bilder (tausende, dumme Kerne), perfekt für parallele Aufgaben wie 3D-Grafik oder KI.
Betriebssystem (OS) S1
Überblick: Das Betriebssystem (OS) ist der Manager deines Computers. Hardware (Maus, Bildschirm, Prozessor) ist dumm. Software (Word, Spiele) ist anspruchsvoll. Das OS vermittelt zwischen den beiden. Es sagt: "Word darf jetzt drucken." "Chrome bekommt 2 GB Speicher." "Das WLAN-Passwort ist 1234."
Einfach erklärt: Für den normalen Nutzer ist das OS der Computer. Du interagierst fast nur über die GUI (Grafische Oberfläche) des OS: Dateimanager (Explorer/Finder) zum Ordnen von Dateien. Taskleiste/Dock zum Starten von Apps. Einstellungen für Helligkeit, Netzwerk und Updates.
Warum laufen iPhone-Apps nicht auf Android?
Weil beide Betriebssysteme (iOS vs. Android) eine völlig unterschiedliche "Sprache" und Struktur haben. Die App findet nicht die Bausteine, die sie erwartet.Was ist der Unterschied zwischen Kernel und GUI?
Der Kernel ist der unsichtbare Motor, der die Technik steuert. Die GUI ist das hübsche Lenkrad, das der Benutzer bedient.Warum braucht man Treiber?
Damit das Betriebssystem auch Hardware verstehen kann, die es beim Bau des OS noch gar nicht gab (z. B. ein ganz neuer Drucker).
RAM S1
Überblick: RAM ist das Kurzzeitgedächtnis deines Computers. Alles, was du gerade jetzt machst (diese Webseite lesen, Musik hören), liegt im RAM. Es ist extrem schnell, aber vergesslich. Sobald du den Strom ausschaltest, ist der RAM leer. Deshalb musst du deine Hausarbeit speichern (auf die Festplatte schreiben), bevor du den PC herunterfährst.
Einfach erklärt: Wie viel RAM brauchst du? 8 GB: Standard für Surfen und Office. 16 GB: Gut für Gaming und Fotobearbeitung. 32 GB+: Für Videoschnitt und Profi-Anwendungen.
Warum speichert man nicht einfach alles im RAM?
1. Weil alles weg wäre, wenn der Strom ausfällt. 2. Weil RAM viel teurer ist als SSD-Speicher (pro Gigabyte).Was bedeutet "Chrome frisst RAM"?
Jeder offene Tab in Chrome ist ein eigener Prozess. Das ist sicher (wenn einer abstürzt, lebt der Rest weiter), kostet aber viel Arbeitsspeicher.Was ist der Unterschied zu VRAM?
VRAM (Video RAM) sitzt auf der Grafikkarte. Er ist speziell dafür optimiert, riesige Texturen und 3D-Modelle für Spiele zu speichern.
Backup S1
Überblick: Ein Backup ist dein doppelter Boden. Es ist eine Kopie all deiner wichtigen Daten, die an einem anderen Ort liegt. Computer gehen kaputt. Handys fallen ins Klo. Erpresser verschlüsseln Festplatten. Wenn du kein Backup hast, sind deine Fotos/Daten weg. Für immer. Wenn du ein Backup hast, sagst du: "Egal, ich spiele einfach die Kopie von gestern wieder ein."
Warum reicht es nicht, Dateien einfach auf eine zweite Partition derselben Festplatte zu kopieren?
Wenn die Festplatte mechanisch kaputt geht (Head-Crash), sind beide Partitionen tot. Das Backup muss auf ein physikalisch anderes Gerät.Was ist der Vorteil von inkrementellen Backups?
Sie sind extrem schnell und platzsparend, weil sie nur die kleinen Änderungen speichern, statt jeden Tag Terabytes an gleichen Daten zu kopieren.Was ist das Wichtigste beim Backup?
Dass man testet, ob man es wiederherstellen kann (Restore Test).
Schritt 2.1 / 65
App-Server
Der Teil, der die eigentliche Anwendungslogik ausführt.
S1
Schritt 2.1 / 65
App-Server
Der Teil, der die eigentliche Anwendungslogik ausführt.
1. Verstehen
Einsteiger-Brücke: Wenn du App-Server zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. App-Server ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Ein App-Server führt die eigentliche Anwendungslogik aus.
Merksatz: App-Server ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. App-Server ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Der Webserver nimmt die Anfrage an. Der App-Server entscheidet, was fachlich passieren soll.
Typische Anfängerfrage: Woran erkenne ich App-Server im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: App-Server steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
App-Server validieren Eingaben, rufen Services auf, sprechen mit Datenbanken und erzeugen Antworten.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird App-Server zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob App-Server funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
In Produktion zählen Prozessmodell, Worker, Timeouts, Ressourcenlimits, Healthchecks, Logging und sauberes Herunterfahren.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre App-Server ohne Fachsprache.
In einfachen Worten: Ein App-Server führt die eigentliche Anwendungslogik aus. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem App-Server praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und App-Server ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem web server und backend. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du App-Server zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf....
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. App-Server ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt....
- Technischer Zusammenhang: App-Server steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht,...
Optionale Praxisaufgabe
- Erkläre App-Server in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem App-Server relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 3 / 65
Web Server
Wie HTTP-Anfragen entgegengenommen werden.
S1
Schritt 3 / 65
Web Server
Wie HTTP-Anfragen entgegengenommen werden.
1. Verstehen
Ein Programm, das auf Port 80 (HTTP) oder 443 (HTTPS) wartet.
Wenn dein Browser fragt: "Gib mir index.html", sucht der Webserver die Datei auf der Festplatte und schickt sie zurück.
Er ist der Empfangschef des Internets.
Die berühmtesten sind Nginx, Apache HTTP Server und Microsoft IIS.
Ohne Webserver keine Webseite.
Merksatz: Eine Software (oder Hardware), die HTTP-Anfragen von Clients (Browsern) entgegennimmt und Webseiten (HTML, Bilder) oder Daten an sie ausliefert.
Lernbruecke für Anfänger
Wenn du bei Web Server ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Wie HTTP-Anfragen entgegengenommen werden. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Installation (Ubuntu):
sudo apt install nginx
Konfiguration (/etc/nginx/sites-available/default):
server {
listen 80;
root /var/www/html; # Hier liegen die Dateien
index index.html;
}
Du legst deine index.html nach /var/www/html, und die Welt kann sie sehen.
Praxisroutine
In der Praxis lernst du Web Server, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Web Server vs. Application Server
Die Grenze verschwimmt, aber klassisch:
- Web Server (Nginx): Liefert statische Inhalte (Bilder, CSS, HTML). Extrem schnell. Kann keinen Python/PHP-Code ausführen.
- App Server (Gunicorn, Tomcat): Führt Code aus (Logik, DB-Abfragen). Generiert HTML dynamisch.
- Setup: Nginx nimmt die Anfrage an. Wenn es ein Bild ist -> liefert es selbst. Wenn es Logik braucht -> leitet es an Gunicorn weiter (Reverse Proxy).
2. Event-Driven (Nginx) vs. Process-Based (Apache)
Warum hat Nginx Apache verdrängt?
- Apache (Prefork): Startet für jeden User einen neuen Prozess/Thread. Braucht viel RAM. Bei 10.000 Usern stürzt er ab (C10k Problem).
- Nginx (Event Loop): Ein einziger Prozess bedient tausende User asynchron ("Non-blocking I/O"). Extrem speichereffizient. (Apache kann heute auch Events, aber Nginx war der Pionier).
3. Virtual Hosts (SNI)
Ein Webserver kann 100 verschiedene Webseiten hosten (google.com, gmail.com, youtube.com) auf einer IP-Adresse.
Woher weiß er, welche Seite der User will?
Er schaut in den Host-Header der HTTP-Anfrage (oder SNI im TLS Handshake).
"Aha, du willst kekse.de. Hier ist der Ordner /var/www/kekse."
4. Vertiefen
1. Compression (GZIP & Brotli)
Ein Webserver schickt Text-Dateien (HTML/JS) fast nie im Originalzustand. Er komprimiert sie "on the fly".
- GZIP: Der Klassiker. Spart ca. 70% Dateigröße.
- Brotli (von Google): Neuer und effizienter als GZIP, braucht aber mehr CPU-Leistung beim Komprimieren.
Der Browser schickt den Header
Accept-Encoding: br, gzip, und der Webserver entscheidet: "Ich habe genug CPU-Power, ich schicke dir das hocheffiziente Brotli-Paket." Das reduziert die Ladezeit massiv, besonders bei mobilen Datenverbindungen.
2. Layer 7 Load Balancing
Webserver wie Nginx werden oft nur als "Türsteher" vor einer ganzen Armee von Servern genutzt. Sie machen Layer 7 Load Balancing: Nginx schaut in den Request: "Willst du ein Bild? Geh zu Server A. Ist es ein Login-Versuch? Geh zum teuren Server B." Außerdem können sie SSL-Termination machen: Der Webserver übernimmt das extrem rechenintensive Entschlüsseln der HTTPS-Verbindung. Die internen App-Server dahinter bekommen dann schnelles, unverschlüsseltes HTTP. Das schont die Ressourcen der App-Server.
3. Thundering Herd Problem
Wenn du einen sehr beliebten Blog-Post hast und der Cache des Webservers abläuft, passiert folgendes: 1.000 User fragen gleichzeitig nach der Seite. Der Webserver merkt: "Oh, Cache leer!", und leitet 1.000 Anfragen gleichzeitig an die langsame Datenbank weiter. Die DB bricht zusammen. Profis konfigurieren ihre Webserver daher mit Locking oder Stale-while-revalidate: Wenn der Cache abläuft, darf nur einer zur DB gehen und die Seite neu bauen. Die restlichen 999 User bekommen solange noch kurz die "alte" (stale) Seite angezeigt.
5. Prüfen
Was ist Caddy?
Ein moderner Webserver (in Go geschrieben). Sein Killer-Feature: Er macht HTTPS (Let's Encrypt Zertifikate) vollautomatisch. Nginx muss man dafür konfigurieren.Statisch vs. Dynamisch?
Statisch: Die Datei liegt fertig auf der Platte. Dynamisch: Die Seite wird im Moment der Anfrage "gebaut" (z. B. News-Feed). Webserver lieben Statik.Keep-Alive?
Eine Optimierung. Die TCP-Verbindung bleibt nach dem ersten Bild offen, damit das zweite Bild schneller geladen werden kann (kein neuer Handshake). Der Webserver verwaltet diese offenen Leitungen.
Zusammenfassung
- Ein Programm, das auf Port 80 (HTTP) oder 443 (HTTPS) wartet. Wenn dein Browser fragt: "Gib mir index.html", sucht der Webserver die Datei auf der Festplatte und schickt sie zurück. Er ist der Empfangschef des Internets. Die berühmtesten sind Nginx, Apache...
- Installation (Ubuntu): bash sudo apt install nginx Konfiguration (/etc/nginx/sites-available/default): nginx server { listen 80; root /var/www/html; Hier liegen die Dateien index index.html; } Du legst deine index.html nach /var/www/html, und die Welt kann...
Optionale Praxisaufgabe
- Erkläre Web Server in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Web Server relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 3.1 / 65
Nginx
Reverse Proxy und Webserver betreiben.
S1
Schritt 3.1 / 65
Nginx
Reverse Proxy und Webserver betreiben.
1. Verstehen
Wenn du google.de besuchst, antwortet ein Computer.
Auf diesem Computer läuft eine Software, die deine Anfrage annimmt und die Webseite zurückschickt.
Diese Software ist der Webserver.
Der beliebteste der Welt heißt Nginx (sprich: "Engine X").
Er ist extrem schnell. Er kann 10.000 Benutzer gleichzeitig bedienen, ohne ins Schwitzen zu kommen.
Er ist der "Türsteher" und "Kellner" des Internets.
Merksatz: Ein extrem leistungsfähiger Webserver und Reverse Proxy, der Webseiten ausliefert und Last verteilt.
:level0
Lernbruecke: Nginx ist oft der Eingang vor einer Webanwendung. Es nimmt Requests entgegen und leitet sie an die passende App weiter.
2. Anwenden
Nginx hat zwei Jobs:
- Webserver: "Hier ist die
index.html. Tschüss." (Statische Dateien). - Reverse Proxy: "Ah, du willst in den Shop? Ich leite dich weiter an den Shop-Server (Node.js), der hinter mir steht." Er schützt die Server dahinter und macht SSL-Verschlüsselung (das grüne Schloss).
:level1
Praxisbeispiel: Browser -> Nginx -> Backend. Nginx kann statische Dateien direkt ausliefern, TLS beenden und /api an eine Anwendung weiterreichen.
Praxisroutine
In der Praxis lernst du Nginx, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. C10k Problem
In den 90ern stürzten Server ab, wenn 10.000 (10k) Leute gleichzeitig kamen (Apache Problem). Jeder User brauchte einen eigenen Prozess (viel RAM). Nginx wurde erfunden, um das zu lösen. Es ist Event-Driven (Asynchron). Ein einziger Prozess bedient alle 10.000 User nacheinander in Millisekunden-Taktung. Extrem effizient.
2. Config File
Die Konfiguration (nginx.conf) ist mächtig.
Du kannst Regeln bauen:
"Blockiere alle Hacker aus China."
"Komprimiere alle Bilder, bevor du sie sendest."
"Wenn Server A kaputt ist, nimm Server B."
Technisch arbeitet Nginx als Webserver, Reverse Proxy und Load Balancer. Gute Konfiguration regelt Timeouts, Header, TLS, Weiterleitungen und maximale Request-Größen.
4. Vertiefen
1. Asynchronous Non-Blocking Engine (Worker Model)
Warum Apache (Prefork) bei 10.000 Usern crashte: Er öffnete einen eigenen OS-Thread (3MB RAM) pro Verbindung. 10.000 x 3MB = 30 Gigabyte RAM, das Serverboard schmolz.
Nginx nutzt die Event Loop (epoll in Linux).
Ein Master-Prozess generiert wenige Worker-Prozesse (ideal: ein Worker pro CPU-Kern). Ein Worker wartet asynchron. Fragt User A ein 5MB Bild an, fädelt der Worker den Festplatten-Read an den OS-Kernel ein und dreht sich sofort weg. Er bedient User B. Meldet der Kernel "Bild ist geladen", wacht der File-Descriptor im Event-Loop auf und Nginx streamt die Datei los. Ein einziger 50MB Worker-Thread hält so hunderte parallele Keep-Alive-Sockets im Zustand ESTABLISHED, ohne auch nur eine CPU-Wait-Cycel zu blockieren.
2. Zero Copy (sendfile)
Wenn du ein statisches Image auslieferst, kostet das normalerweise irre viel CPU: Die Festplatte liest es ins Kernel-RAM, der Kernel kopiert es ins User-RAM (zu Nginx), Nginx formatiert es, und kopiert es zurück in den Kernel-Socket Puffer, von wo es die Netzwerkkarte versendet.
Nginx macht sich die Linux-Option sendfile on; zunutze.
Nginx bittet den Kernel: "Ich brauch hier nicht mitschauen. Nimm /var/www/logo.png und drücke es als rohen Bitstream direkt vom Festplatten-Controller in die Netzwerk-Hardware durch." Der User-Space von Nginx wird physikalisch übersprungen (Zero Copy). Die CPU-Auslastung bei statischen Files sinkt von 80% auf nahe 0%.
3. Load Balancing & Hashing
Neben Static-Hosting ist Nginx der mächtigste Reverse-Proxy.
Nutzt du upstream { server node1; server node2; }, balanced Nginx standardmäßig Round-Robin.
Für zustandsbehaftete Services (Session Tokens im RAM von Node 1) reicht das nicht. Hier nutzt du Consistent Hashing: ip_hash;.
Nginx nimmt die IPv4 (192.168.1.5), hasht sie als String und verteilt sie strikt deterministisch. Der User landet heute, morgen und in 3 Jahren zwingend auf Server 1 (Sticky Session). Bei Skalierung (Server 3 dazu) wird die Ring-Theorie geformt, dass nur 33% der User umziehen müssen.
5. Prüfen
Ist Apache schlecht?
Nein, Apache ist älter und flexibler (.htaccess Dateien), aber langsamer bei vielen Besuchern. Oft nutzt man beides: Nginx vorne als schneller Türsteher, Apache hinten für die Logik.Was kostet Nginx?
Die Open-Source-Version ist kostenlos. Es gibt "Nginx Plus" (Bezahlt) mit extra Funktionen für Konzerne.Warum "Reverse" Proxy?
Ein normaler Proxy (Forward) steht bei dir und bringt dich ins Internet. Ein Reverse Proxy steht beim Server und schützt den Server vor dem Internet.
Zusammenfassung
- Wenn du google.de besuchst, antwortet ein Computer. Auf diesem Computer läuft eine Software, die deine Anfrage annimmt und die Webseite zurückschickt. Diese Software ist der Webserver. Der beliebteste der Welt heißt Nginx (sprich: "Engine X"). Er ist extrem...
- Nginx hat zwei Jobs: 1. Webserver: "Hier ist die index.html. Tschüss." (Statische Dateien). 2. Reverse Proxy: "Ah, du willst in den Shop? Ich leite dich weiter an den Shop-Server (Node.js), der hinter mir steht." Er schützt die Server dahinter und macht...
- Technisch arbeitet Nginx als Webserver, Reverse Proxy und Load Balancer. Gute Konfiguration regelt Timeouts, Header, TLS, Weiterleitungen und maximale Request-Größen.
Optionale Praxisaufgabe
- Erkläre Nginx in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Nginx relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
HTML S1
Überblick: HTML ist das Skelett jeder Webseite. Es ist keine Programmiersprache (es kann nicht rechnen), sondern eine Beschreibungssprache. Es sagt dem Browser nur, was was ist: Dies ist eine Überschrift Dies ist ein Textabsatz Hier kommt ein Bild hin Dies ist ein Knopf
Einfach erklärt: Jeder Browser hat einen "Röntgenblick". Rechtsklick auf jede Webseite - "Seitenquelltext anzeigen" (View Source). Da siehst du das nackte HTML. Es besteht aus Tags (Etiketten) in spitzen Klammern . Die meisten Tags haben einen Anfang und ein Ende . Dazwischen steht der Inhalt.
Warum nennt man HTML keine "Programmiersprache"?
Weil es keine Logik hat. Du kannst in reinem HTML nicht sagen "Wenn X passiert, dann tue Y" oder "Rechne 5 + 5". Es beschreibt nur statische Struktur.Was passiert, wenn ich ein Tag vergesse zu schließen (z. B.
</h1>fehlt)?Moderne Browser sind sehr tolerant und raten oft richtig, was du meintest. Aber es kann das Layout zerschießen ("Die ganze Seite ist jetzt eine riesige Überschrift!").Wofür steht das "Hypertext" in HTML?
Für Text, der Verlinkungen (Hyperlinks) zu anderen Texten enthält. Das war die revolutionäre Idee des Webs: Alles ist miteinander verknüpft.
Proxy (Forward Proxy) S1
Überblick: Ein Mittelsmann. Du (in der Firma) willst auf facebook.com. Der Chef hat das gesperrt. Du verbindest dich mit einem Proxy-Server. Du sagst: "Hol mir bitte facebook.com". Der Proxy holt die Seite und gibt sie dir. Für Facebook sieht es so aus, als wäre der Proxy der Besucher. Deine IP bleibt geheim. Für den Chef sieht es so aus, als würdest du nur mit dem Proxy reden (wenn er verschlüsselt ist).
Einfach erklärt: In Firmen: Zwangsproxy. Jeder Mitarbeiter muss durch den Proxy gehen. Der Proxy: 1. Scannt auf Viren. 2. Blockiert Pornografie. 3. Loggt, wer wie lange surft.
Proxy vs. VPN?
Proxy schützt meist nur den Browser (App-Ebene). VPN schützt den ganzen PC (alle Programme). VPN ist verschlüsselt, Proxy oft nicht.Squid?
Der berühmteste Linux-Proxy. Diente früher primär zum Cachen (Webseiten speichern, damit sie beim zweiten Mal schneller laden). Heute ist Caching dank HTTPS und dynamischem Web fast tot.Open Proxy?
Ein Proxy ohne Passwort im Internet. Hacker nutzen diese "Zombies", um Angriffe zu verschleiern. Wirst du erwischt, landest du auf Blacklists.
Schritt 4 / 65
HTTP
Die Sprache des Webs verstehen.
S1
Schritt 4 / 65
HTTP
Die Sprache des Webs verstehen.
1. Verstehen
HTTP ist die universelle Sprache des Internets. Jedes Mal, wenn du eine Webseite öffnest, eine App nutzt oder ein Video streamst, sprechen dein Gerät (Client) und der Server diese Sprache.
Stell dir vor, du schreibst einen offiziellen Brief an eine Behörde:
- Du brauchst einen Umschlag mit einer Adresse (URL).
- Du musst draufschreiben, was du willst ("Antrag auf..." = Request Method).
- Du legst das Formular in den Umschlag (Body).
- Die Behörde schickt dir einen Antwortbrief zurück. Darin steht entweder "Genehmigt" (Status 200) oder "Formular fehlt" (Status 400).
Ohne diese strengen Form-Regeln würde das Internet im Chaos versinken. Wenn dein Browser Deutsch spricht, aber der Server nur Chinesisch, verstehen sie sich nicht. HTTP ist das "Englisch", auf das sich alle geeinigt haben.
Merksatz: Das Protokoll, das regelt, wie Clients (Browser) und Server (Webseiten) Nachrichten austauschen.
2. Anwenden
Real-World Example: Der Instagram-Feed
Wenn du Instagram öffnest, passiert im Hintergrund ein Feuerwerk an HTTP-Anfragen:
- GET /feed: "Gib mir die neuesten Bilder." -> Server sendet Liste mit Bild-URLs.
- GET /image/123: "Lade dieses spezielle Foto." -> Server sendet die Bild-Daten.
- POST /like: "Ich mag das Bild." -> Server speichert das Herz in der Datenbank.
Die "Verben" (Methoden)
HTTP definiert genau, was du tun willst. Das ist wie im Restaurant:
- GET: "Bringen Sie mir die Karte." (Daten abrufen). Ändert nichts auf dem Server.
- POST: "Ich bestelle die Nummer 12." (Daten senden/erstellen).
- PUT / PATCH: "Ich möchte doch lieber Pommes statt Reis." (Daten ändern/updaten).
- DELETE: "Stornieren Sie das." (Daten löschen).
Der Status Code (Die Ampel)
Jede Antwort hat einen Code. Die wichtigsten für den Alltag:
- 200 OK: Grün. Alles super.
- 404 Not Found: Gelb/Rot. Die Seite/Datei gibt es nicht (falsche Adresse).
- 500 Internal Error: Rot. Der Server ist kaputt (nicht deine Schuld).
3. Technisch einordnen
1. Struktur eines HTTP-Requests
Ein Request ist reiner Text (außer bei HTTP/2+). Er besteht aus:
- Start Line:
GET /index.html HTTP/1.1(Was will ich, welches Protokoll). - Headers: Metadaten.
Host: google.com(Wen rufe ich an?)User-Agent: Mozilla/5.0...(Wer bin ich? Chrome auf Windows?)Accept: text/html(Was verstehe ich?)Cookie: session_id=xyz(Mein Ausweis).
- Body: (Optional) Die Daten bei POST/PUT.
2. Statelessness & State Management
HTTP ist zustandslos (stateless). Das ist eine der wichtigsten Eigenschaften.
Der Server weiß bei Anfrage B nicht mehr, was du bei Anfrage A gemacht hast (wie ein Goldfisch).
Das Problem: Beim Online-Shopping musst du aber über mehrere Seiten hinweg eingeloggt bleiben.
Die Lösung: Cookies & Sessions.
Der Server gibt dir beim ersten "Hallo" einen Keks (Cookie mit session_id). Bei jedem weiteren Aufruf zeigst du diesen Keks vor. So "erinnert" sich der Server wieder.
3. HTTP-Versionen: Die Evolution der Geschwindigkeit
- HTTP/1.1 (1997): Der alte Standard. Jede Datei (Bild, CSS, JS) braucht eine eigene TCP-Verbindung. Das ist langsam ("Head-of-Line Blocking").
- HTTP/2 (2015): Multiplexing. Über eine Leitung können viele Anfragen gleichzeitig flitzen. Wie eine Autobahn mit vielen Spuren statt einer Landstraße.
- HTTP/3 (QUIC): Basiert auf UDP statt TCP. Wenn ein Paket verloren geht, bremst das nicht mehr den ganzen Ladevorgang. Extrem wichtig für instabile Handynetze. YouTube und Google nutzen das fast überall.
4. Vertiefen
1. HTTP/2 Frame Architecture
HTTP/1 war purer, von Menschen lesbarer Text über den TCP Socket.
HTTP/2 ändert die Anatomie des Protokolls radikal in ein Binary Framing Format.
Ein Request wird nicht als String geschickt, sondern in winzige binäre Datenpakete (Frames) zerhackt. Es gibt HEADERS-Frames, die kryptografisch hochkomprimiert werden (HPACK-Algorithmus schrumpft redundante Cookies extrem), und DATA-Frames für den Body. Alle Frames haben eine Stream-ID.
Dadurch entsteht echtes Multiplexing: Das Bild A (Stream 1) und CSS B (Stream 2) werden in Frames zerhäckselt, chaotisch gemischt über dieselbe einzige TCP-Leitung gepumpt, und am Browser-Ende wieder mathematisch perfekt zusammengeflickt. Das "Head-of-Line Blocking" (langsame Bilder blockieren CSS) ist besiegt.
2. HTTP/3 (QUIC) und der Abschied von TCP
HTTP/2 war perfekt, bis auf einen Haken: Es lag auf TCP. Wenn im Mobilfunknetz auch nur ein einziges TCP-Datenpaket bei Tempo 150 km/h im Zug verloren geht, zwingt TCP die gesamte Congestion-Control zum Halten. Der Kernel blockiert alle Multiplex-Streams von HTTP/2 synchron, bis das Paket per Timeout (teils 300ms) re-transmitted wurde (TCP Head-of-Line Blocking). Google entwarf QUIC (HTTP/3). Es wirft TCP komplett in den Müll und läuft direkt über das schnellere UDP. QUIC baut seine eigene, clevere Stream-Control im Userspace auf. Geht bei UDP ein Datenpaket verloren, blockiert exakt nur dieser eine Bild-Stream. Die anderen CSS-Dateien laufen ungestört flüssig an dem Loch vorbei.
3. Connection Keep-Alive vs Pipelining
In den düsteren 90ern schloss HTTP/1.0 nach jedem 200 OK hart den TCP-Socket. Die CPU brannte bei neuen Handshakes und Slow-Starts.
HTTP/1.1 führte Connection: keep-alive ein: Der TCP-Tunnel bleibt nach dem Download offen wie ein Strohhalm, bereit für Bild Nummer zwei.
Das gescheiterte Experiment war HTTP Pipelining (mehrere GETs blind abschicken, ohne auf die 200 OK des ersten zu warten). Da FiFO-Queueing herrscht, blockierte ein langsamer Serverdurchlauf bei GET 1 (DB Query) alle nachfolgenden Bilder. Pipelining ist heute tot und wurde durch HTTP/2 Multiplexing ersetzt.
5. Prüfen
Welche HTTP-Methode nutzt dein Browser standardmäßig, wenn du eine Adresse in die Zeile tippst?
GET. Du forderst eine Ressource an, um sie anzuzeigen.Warum ist es technisch "schwierig", einen Warenkorb zu bauen, wenn HTTP stateless ist?
Weil der Server nach dem Hinzufügen des ersten Artikels sofort vergisst, wer du warst. Man muss den Zustand künstlich über Cookies/Sessions mitschleppen.Was bedeutet der Status Code 404 genau?
Der Server wurde erreicht (er lebt!), aber die Ressource (Datei/Seite), die du angefordert hast, liegt nicht an diesem Ort.
Zusammenfassung
- HTTP ist die universelle Sprache des Internets. Jedes Mal, wenn du eine Webseite öffnest, eine App nutzt oder ein Video streamst, sprechen dein Gerät (Client) und der Server diese Sprache.
Optionale Praxisaufgabe
- Erkläre HTTP in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem HTTP relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
TCP (Transmission Control Protocol) S1
Überblick: Das Internet ist unzuverlässig (Pakete gehen verloren). Deine Email darf aber keine Lücken haben. TCP ist der Buchhalter des Internets. Es nummeriert jedes Byte. "Ich sende Paket 1, 2, 3." Empfänger: "Habe 1 und 3. Wo ist 2?" TCP: "Oh, ich schicke 2 nochmal." (Retransmission). Erst wenn alles da und sortiert ist, gibt TCP die Daten an die App (Browser) weiter. Der Preis dafür: Es ist langsamer als UDP (wegen Warten auf Bestätigung).
Einfach erklärt: Fast alles nutzt TCP: HTTP (Webseiten), SSH, FTP, Email (SMTP). Wenn du "Verbindung aufbauen" hörst, ist es TCP. Wenn du "Live Streaming" siehst, wo Artefakte okay sind, ist es oft UDP.
Was ist ein Segment?
Die Dateneinheit von TCP (Layer 4). Ein IP-Paket (L3) enthält ein TCP-Segment. Es hat Header (Source Port, Dest Port, Seq Num) und Payload.Warum 3-Way-Handshake?
Um Sequence Numbers zu synchronisieren und sicherzustellen, dass die Gegenseite "wirklich" da ist (Anti-Spoofing). Siehe eigenen Artikel "TCP Handshake".Keep-Alive?
TCP-Verbindungen sterben leise, wenn das Kabel gezogen wird (ohne FIN). Keep-Alive sendet leere Pakete alle 2 Stunden (Default), um zu prüfen "Lebst du noch?". Viele Firewalls killen Idle-Connections aber schon nach 1 Stunde.
Port (Network) S1
Überblick: Eine IP-Adresse ist wie eine Hausnummer ("Hauptstraße 5"). Aber wer wohnt da? Hinter der Tür wohnen 65.535 Familien. Jede hat eine eigene Klingel (Port). Port 80: Familie Webserver (HTTP). Port 443: Familie Sicherer Webserver (HTTPS). Port 22: Familie Admin (SSH). Wenn ein Paket ankommt, schaut das Betriebssystem auf die Port-Nummer und weiß: "Ah, das ist für den Firefox (Port 53122) und das ist für den Webserver (Port 80)." Ohne Ports könnte ein Computer nur ein Programm gleichzeitig im Netzwerk laufen lassen.
Einfach erklärt: Wenn du eine URL eingibst: google.com, ergänzt der Browser automatisch :443. Wenn du Minecraft spielst, musst du oft den Port wissen: :25565. In der Firewall ("Windows Defender" oder Router) musst du Ports freigeben (Open Port). Sonst kommen Pakete an der Haustür an, aber die Klingel ist abgeklemmt (Drop).
TCP vs UDP Ports?
Port 80 TCP ist eine andere Klingel als Port 80 UDP. Sie sind unabhängig. DNS nutzt Port 53 auf TCP und UDP.Was ist Port Knocking?
Ein Sicherheits-Trick. Alle Ports sind zu. Du musst in einer bestimmten Reihenfolge klopfen (Ping an Port 100, dann 200, dann 300). Erst dann öffnet die Firewall Port 22 für deine IP. "Geheimcode an der Tür".Warum "Privileged Ports"?
Historisches Relikt. Früher (Unix) vertraute man darauf: "Wenn die Verbindung von Port < 1024 kommt, ist es der Admin (Root)." Heute ist das sinnlos, weil jeder seinen eigenen root-Server hat, aber die Sperre im Kernel bleibt.
IP Address S1
Überblick: Eine IP-Adresse ist die eindeutige Wohnadresse eines Geräts in einem Computernetzwerk. Stell dir vor, du möchtest deinem Freund einen Brief schreiben. Wenn du nur "An Tom" draufschreibst, kommt der Brief nie an. Du brauchst Straße, Hausnummer und Postleitzahl.
Einfach erklärt: Im Alltag begegnen dir zwei Arten von IPs, die oft verwechselt werden:
Warum hat dein Laptop zu Hause meist eine IP, die mit
192.168...anfängt?Das ist ein reservierter Bereich für private Netzwerke (RFC1918). Diese IPs werden im Internet nicht geroutet.Was ist der Unterschied zwischen
127.0.0.1und deiner öffentlichen IP?127.0.0.1bist nur du (interner Monolog). Deine öffentliche IP ist deine Adresse für die Außenwelt.Warum brauchen wir IPv6 wirklich dringend?
Weil wir mehr als 4 Milliarden Geräte haben (Handys, IoT, Autos). IPv4 ist mathematisch am Ende.
Schritt 4.1 / 65
Header
Zusatzinformationen in HTTP-Anfragen und Antworten lesen.
S1
Schritt 4.1 / 65
Header
Zusatzinformationen in HTTP-Anfragen und Antworten lesen.
1. Verstehen
Einsteiger-Brücke: Wenn du Header zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Header ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Header sind Zusatzinformationen in HTTP-Anfragen und HTTP-Antworten.
Merksatz: Header ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Header ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Header sind wie Begleitzettel: Sie sagen zum Beispiel, welcher Inhalt gesendet wird oder welcher Token mitkommt.
Typische Anfängerfrage: Woran erkenne ich Header im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei Header immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: Header steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Typische Header betreffen Content-Type, Authorization, Cache-Control, Cookies, CORS und Sicherheitsregeln.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Header zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Header funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Falsch gesetzte Header können Caching-Fehler, Security-Lücken, Auth-Probleme oder kaputte Proxy-Weiterleitungen verursachen.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Header ohne Fachsprache.
In einfachen Worten: Header sind Zusatzinformationen in HTTP-Anfragen und HTTP-Antworten. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Header praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Header ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem http und api. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Header zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Header ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technik-Nachtrag: Prüfe bei Header immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre Header in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Header relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 5 / 65
HTTPS (Hypertext Transfer Protocol Secure)
Verschlüsselte Webkommunikation einordnen.
S1
Schritt 5 / 65
HTTPS (Hypertext Transfer Protocol Secure)
Verschlüsselte Webkommunikation einordnen.
1. Verstehen
HTTP ist transparent. Wenn du im Café surfst, kann der Typ am Nebentisch deine Passwörter mitlesen (Postkarte). HTTPS ist HTTP in einem Tresor. Der Tresor heißt TLS (früher SSL). Bevor Daten fließen, tauschen Browser und Server Schlüssel aus ("Handshake"). Ab dann ist alles Datensalat (verschlüsselt). Niemand kann mitlesen (Confidentiality). Niemand kann Daten verändern (Integrity). Und du weißt, mit wem du redest (Authentication durch Zertifikate). Ohne HTTPS kein Online-Banking.
Merksatz: Die abgesicherte Variante von HTTP, bei der die Kommunikation über Transport Layer Security (TLS) verschlüsselt wird, um Abhören und Manipulation zu verhindern.
2. Anwenden
Früher war HTTPS teuer und langsam. Heute ist es Standard (Google bestraft HTTP-Seiten im Ranking). Tools:
- Let's Encrypt: Kostenlose Zertifikate, vollautomatisch.
- Certbot: CLI-Tool, das Nginx/Apache automatisch umkonfiguriert. Browser zeigen das Schloss-Symbol. Achtung: HTTPS schützt den Weg. Es schützt nicht vor Phishing (eine Fake-Seite kann auch HTTPS haben!).
Praxisroutine
In der Praxis lernst du HTTPS (Hypertext Transfer Protocol Secure), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. TLS Handshake (1.2 vs 1.3)
Der Grund für die Latenz (Startup Delay).
- Client Hello: "Ich kann TLS 1.3, Cipher X, Y."
- Server Hello: "Wir nehmen TLS 1.3, Cipher X. Hier ist mein Zertifikat."
- Key Exchange: (Diffie-Hellman). Gemeinsames Geheimnis berechnen.
- Finished. TLS 1.2 brauchte 2 Round-Trips (2-RTT). TLS 1.3 braucht nur noch 1-RTT (schneller!). Mit "0-RTT" (Session Resumption) kann man sogar sofort Daten senden (aber Vorsicht vor Replay Attacks).
2. SNI (Server Name Indication)
Früher brauchte jede HTTPS-Domain eine eigene IP.
Denn der Server wusste beim Handshake noch nicht, welche Domain du willst (Host-Header ist verschlüsselt!).
SNI ist eine Erweiterung im "Client Hello" (unverschlüsselt): "Ich will google.com".
Jetzt kann der Server das richtige Zertifikat auswählen.
Das ermöglicht Shared Hosting und Cloud Load Balancer.
3. HSTS (Strict Transport Security)
Ein Hacker kann dich beim ersten Aufruf auf HTTP umlenken ("SSL Stripping").
HSTS ist ein Header: Strict-Transport-Security: max-age=31536000.
Er sagt dem Browser: "Merk dir für 1 Jahr: Sprich mit mir NUR noch per HTTPS. Verweigere jeden HTTP-Versuch, auch wenn der User es tippt."
Zusammen mit der HSTS Preload List (fest im Chrome-Code) ist HTTP faktisch tot für diese Domain.
4. Vertiefen
1. Perfect Forward Secrecy (PFS) und Diffie-Hellman
Früher (bei statischem RSA-Schlüsseltausch) wurde das "Master-Secret" für die Session vom Client generiert und mit dem öffentlichen Schlüssel der Website verschlüsselt an den Server gesandt. Das Horror-Szenario: NSA zeichnet 5 Jahre lang global deinen Datensalat auf. Sie hacken einmal den Server, stehlen seinen Private Key, dechiffrieren damit nachträglich alle aufgezeichneten Master-Secrets der letzten 5 Jahre, und dein Datensalat wird lesbarer Klartext. PFS verhindert das. Mittels ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) wird kein statisches Secret mehr über das Netz geschickt. Client und Server berechnen extrem komplexe Logarithmen, mischen sie mit mathematischen Zufalls-Parametern (Session Keys) und verwerfen sie sofort nach dem Surfen (Ephemeral). Selbst der entwendete Root-Key des Servers kann veraltete Aufzeichnungen von gestern niemals decodieren. TLS 1.3 macht PFS zur eiskalten Pflicht.
2. Certificate Transparency (CT) Logs
Ein Zertifikat von "Let's Encrypt" vertraut deinem Browser blind, weil die Root-CA (Certificate Authority) fest im OS installiert ist.
Aber was, wenn die türkische Regierungs-Root-CA (die auch im OS vertraut wird) heimlich ein völlig valides Fake-Zertifikat für google.com schreibt und als Man-in-the-Middle fungiert?
Chrome schützt das Web mit Certificate Transparency. CAs müssen zwingend jedes ausgestellte SSL-Zertifikat global, öffentlich und krypto-sicher (Merkle-Tree, ähnlich einer Blockchain) in Log-Sever eintragen. Chrome lehnt Zertifikate brutal ab, deren SCT-Timestamp (Signed Certificate Timestamp) nicht in diesen Logs auftaucht. Firmen (wie Google) können die CT-Logs mit Skripten scannen und Alarm schlagen, falls jemand in Kasachstan "ihr" Zertifikat generiert.
3. ALPN (Application-Layer Protocol Negotiation)
Ein kaum bekannter, aber absolut kritischer Aspekt bei HTTPS. Beim TLS 1.3 Handshake findet im "Client Hello" gleichzeitig die ALPN Extension statt. Der Browser funkt: "Lass uns verschlüsseln, und wenn wir fertig sind, will ich gern HTTP/2 sprechen (h2)". Der Server antwortet unverschlüsselt im Negotiation-Ticket sofort mit: "Alles klar, wir nutzen h2". Dadurch muss der Browser nach Abschluss des TLS-Handshakes keinen neuen RTT (Round Trip Time) verschwenden, um HTTP-Versionen mühsam auszuhandeln. ALPN spart Hunderte Millisekunden im kritischen First-Contentful-Paint Pfad des Renderings ein.
5. Prüfen
Ist SSL und TLS das Gleiche?
Umgangssprachlich ja. Technisch: SSL (v1, v2, v3) ist steinalt und unsicher ("POODLE" Attacke). Es wurde in TLS (v1.0 - 1.3) umbenannt. Sage "TLS", wenn du Kompetenz zeigen willst.Verschlüsselt HTTPS die URL?
Ja! Der Pfad (/search?q=porno) ist unsichtbar. Aber: Der Hostname (google.com) ist sichtbar (im DNS und SNI). Der Admin sieht also, wo du bist, aber nicht was du machst.Mixed Content?
Eine HTTPS-Seite lädt ein HTTP-Bild/Skript. Browser blockieren das Skript sofort ("Passive/Active Mixed Content"), weil das Skript manipuliert sein könnte und die Sicherheit der ganzen Seite kompromittiert.
Zusammenfassung
- HTTP ist transparent. Wenn du im Café surfst, kann der Typ am Nebentisch deine Passwörter mitlesen (Postkarte). HTTPS ist HTTP in einem Tresor. Der Tresor heißt TLS (früher SSL). Bevor Daten fließen, tauschen Browser und Server Schlüssel aus ("Handshake"). Ab...
- Früher war HTTPS teuer und langsam. Heute ist es Standard (Google bestraft HTTP-Seiten im Ranking). Tools: Let's Encrypt: Kostenlose Zertifikate, vollautomatisch. Certbot: CLI-Tool, das Nginx/Apache automatisch umkonfiguriert. Browser zeigen das...
Optionale Praxisaufgabe
- Erkläre HTTPS (Hypertext Transfer Protocol Secure) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem HTTPS (Hypertext Transfer Protocol Secure) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Encryption (Symmetric vs. Asymmetric) S1
Überblick: Geheimschrift. Du verwandelst "Hallo" in "Xj9b". Nur wer den Schlüssel hat, kann es zurückverwandeln. Es gibt zwei Hauptarten: 1. Symmetrisch (Wie ein Haustürschlüssel): Derselbe Schlüssel sperrt zu UND auf. Schnell. Problem: Wie gebe ich dir den Schlüssel, ohne dass der Postbote ihn klaut? 2. Asymmetrisch (Wie ein Briefkasten): Es gibt zwei Schlüssel: Öffentlicher (Schlitz) und Privater (Kastenschlüssel). Jeder kann Nachrichten einwerfen (verschlüsseln mit Public Key). Nur ich kann sie rausholen (entschlüsseln mit Private Key). Löst das Problem der Schlüsselübergabe!
Einfach erklärt: Das Internet (HTTPS) nutzt beides. Der "Hybrid-Ansatz": 1. Am Anfang (Handshake) nutzen wir Asymmetrisch (RSA/ECC), um sicher einen Schlüssel auszutauschen. 2. Danach nutzen wir diesen Schlüssel für Symmetrisch (AES), um die eigentlichen Daten (Netflix-Film) zu streamen. Warum? Weil Symmetrisch (AES) 1000x schneller ist als Asymmetrisch (RSA).
Ist Base64 Verschlüsselung?
NEIN! Base64 ist Encoding. Jeder kann es rückgängig machen. Es versteckt nichts, es ändert nur das Format. Ein tödlicher Anfängerfehler.Quantencomputer?
Bedrohen asymmetrische Verfahren (RSA/ECC steht vor dem Aus -> Shor's Algorithm). Symmetrische (AES) sind relativ sicher (man muss nur den Key verdoppeln -> AES-512). Post-Quantum-Krypto (Kyber, Dilithium) ist die Lösung.End-to-End (E2E)?
Der Server sieht nur Müll. Nur Sender und Empfänger haben die Keys. (WhatsApp, Signal). Anders als Transport-Verschlüsselung (HTTPS), wo der Server (Google) die Daten im Klartext sieht.
Certificate (Digital Certificate) S2
Überblick: Ein digitaler Ausweis für Computer. Wenn du google.com besuchst, zeigt der Server deinem Browser seinen Ausweis. Darin steht: 1. Wer bin ich? ("Ich bin google.com"). 2. Wer bürgt für mich? ("Unterschrieben von DigiCert"). 3. Wie lange gültig? ("Bis 2025"). 4. Mein öffentlicher Schlüssel: (Damit du mir verschlüsselte Nachrichten senden kannst).
Einfach erklärt: Dateiendungen: .crt / .pem (Der öffentliche Ausweis. Kannst du jedem geben). .key (Der private Schlüssel. Streng geheim! Niemals herausgeben).
Was ist ein Wildcard-Cert?
Gilt für*.example.com. Spart Geld, ist aber riskanter (Private Key gilt für alles).Was passiert bei Ablauf?
Browser blockiert sofort. Deswegen nutzen Profis ACME (Let's Encrypt), um Zertifikate alle 60 Tage vollautomatisch zu erneuern. Keine manuellen Kalender-Einträge mehr!Private Key im Cert?
Nein! Das Zertifikat enthält nur den Public Key. Der Private Key bleibt auf dem Server. Wenn das Cert den Private Key enthielte, könnte sich jeder als Google ausgeben.
TLS Handshake S2
Überblick: Du rufst deine Bank auf (https). Bevor du dein Passwort sendest, müssen Browser und Server zwei Dinge klären: 1. Wer bist du? (Zertifikat prüfen: Ist das wirklich die Bank?). 2. Wie reden wir? (Geheimsprache vereinbaren: Welcher Schlüssel?). Das passiert im TLS Handshake. Er findet nach dem TCP Handshake statt, aber bevor die HTTP-Daten fließen. Erst wenn der Handshake fertig ist, wird der Tunnel "dunkel" (verschlüsselt).
Einfach erklärt: Wenn du curl -v https://google.com machst, siehst du: 1. Client Hello ("Ich kann TLS 1.2 und 1.3"). 2. Server Hello ("Wir nehmen TLS 1.3"). 3. Certificate ("Hier ist mein Ausweis"). 4. Server Key Exchange. Wenn es fehlschlägt: SSLERRORNOCYPHEROVERLAP (Wir sprechen keine gemeinsame Sprache) oder CERTDATEINVALID (Ausweis abgelaufen).
Was ist Cipher Suite?
Eine Liste von Algorithmen.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. "Wir tauschen Schlüssel mit ECDHE, prüfen Identität mit RSA, verschlüsseln Daten mit AES-128 und prüfen Integrität mit SHA256". Client und Server einigen sich auf den stärksten gemeinsamen Nenner.Warum dauert HTTPS länger?
Wegen der RTTs. TCP Handshake (1 RTT) + TLS Handshake (1-2 RTT). Das sind 3x Latenz, bevor das erste Byte kommt. HTTP/3 versucht das zu optimieren.Session Resumption?
Wenn ich die Seite neu lade, muss ich den ganzen Handshake wiederholen? Nein. Der Server gibt mir ein "Session Ticket". Beim nächsten Mal zeige ich das Ticket ("Ich war schon mal da"), und wir nutzen den alten Schlüssel weiter (0-RTT).
Certificate Authority (CA) S2
Überblick: Wenn du deinen Reisepass zeigst, glaubt dir der Polizist. Warum? Nicht weil du nett aussiehst, sondern weil der Bundesadler (Staat) drauf gedruckt ist. Der Staat bürgt für deine Identität. Im Internet ist die Certificate Authority (CA) der Staat. Wenn du google.com öffnest, zeigt dir der Server einen Ausweis (Zertifikat). Woher weiß dein Browser, dass das echt ist? Weil eine CA (z. B. "Let's Encrypt" oder "DigiCert") diesen Ausweis unterschrieben hat. Dein Browser vertraut der CA, also vertraut er auch google.com. Es ist eine Kette des Vertrauens (Chain of Trust).
Einfach erklärt: Als Admin willst du HTTPS für deine Webseite. 1. CSR erstellen: Du erstellst einen "Certificate Signing Request" auf deinem Server. Da steht drin: "Ich bin mein-shop.de". 2. Einreichen: Du schickst den CSR an die CA (z. B. Let's Encrypt). 3. Validierung: Die CA prüft: "Gehört dir die Domain wirklich?". (Oft muss man eine Datei auf den Webserver legen). 4. Issuance: Wenn Prüfung OK - CA unterschreibt deinen CSR und schickt dir das .crt (Zertifikat) zurück. 5. Installation: Du konfigurierst Nginx/Apache mit dem Zertifikat. Der Browser zeigt nun das grüne Schloss.
Was ist Let's Encrypt?
Eine gemeinnützige CA, die Zertifikate kostenlos und automatisiert (ACME Protokoll) ausstellt. Hat das Internet revolutioniert (HTTPS Everywhere). Früher kosteten Zertifikate hunderte Euro.Was passiert, wenn die Root CA "böse" wird?
Wie bei "Symantec" oder "DigiNotar" passiert. Die Browser-Hersteller (Google, Apple) entfernen die Root CA aus dem Trust Store ("Distrust"). Millionen Webseiten werden über Nacht "unsicher". Das ist das Todesurteil für eine CA.Wildcard Zertifikat?
Gilt für*.example.com(alsowww,mail,api). Praktisch, aber gefährlich: Wenn der Key aufmailgeklaut wird, ist auchapikompromittiert.
Schritt 5.1 / 65
TLS (Transport Layer Security)
Die technische Verschlüsselung hinter HTTPS verstehen.
S1
Schritt 5.1 / 65
TLS (Transport Layer Security)
Die technische Verschlüsselung hinter HTTPS verstehen.
1. Verstehen
Früher hieß es SSL (Secure Sockets Layer). Das ist seit 1999 tot. Heute heißt es TLS. Es ist der Beton-Tunnel um deine Internet-Kabel. Ohne TLS kann jeder Admin, jeder Hacker im WLAN und jeder Geheimdienst mitlesen, was du sendest. Mit TLS sieht man nur "Müll" (verschlüsselte Bytes). TLS garantiert drei Dinge:
- Privacy: Niemand kann mitlesen (Encryption).
- Integrity: Niemand kann Nachrichten verändern (Hashing).
- Identity: Du redest wirklich mit deiner Bank (Zertifikate).
Merksatz: Das kryptografische Standardprotokoll zur Absicherung von Kommunikation über Rechnernetze, das Vertraulichkeit, Integrität und Authentizität gewährleistet.
2. Anwenden
Praxis-Nachtrag: Nutze TLS (Transport Layer Security) in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht TLS (Transport Layer Security) auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Im Browser ist es das Schloss-Symbol. Auf dem Server (Nginx) brauchst du:
- Einen Private Key (
key.pem). Streng geheim! - Ein Zertifikat (
cert.pem). Öffentlich. Unterschrieben von Let's Encrypt. Config:
ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
Niemals TLS 1.0 oder 1.1 aktivieren!
3. Technisch einordnen
1. Forward Secrecy (PFS)
Stell dir vor, der NSA zeichnet deinen Traffic heute auf (verschlüsselt). In 5 Jahren klauen sie den Private Key des Servers. Können sie die Aufzeichnung von heute entschlüsseln? Ohne PFS: Ja. (RSA Key Exchange). Mit PFS: Nein. Bei PFS (Diffie-Hellman Ephemeral) wird für jede Session ein Wegwerf-Schlüssel generiert. Der Server-Key dient nur zur Signatur ("Ich bin echt"), nicht zur Verschlüsselung. Darum ist RSA-Key-Exchange in TLS 1.3 verboten.
2. POODLE, BEAST, CRIME
TLS hat eine Geschichte von Sicherheitslücken. Meistens wegen "Downgrade Attacks". Hacker zwingt Server und Client, eine alte, kaputte Version (SSL 3.0) zu nutzen. Dann nutzt er bekannte Mathe-Schwächen (Padding Oracle), um Cookies zu erraten. Lösung: Server Härtung. Nur AES-GCM und CHACHA20 erlauben. Alle CBC-Ciphers verbieten.
3. TLS Termination vs Passthrough
Im Load Balancer (K8s Ingress):
- Termination: Load Balancer packt TLS aus, liest HTTP, schickt es unverschlüsselt an den Pod. (Schneller, einfacher, aber Traffic im Cluster ist klartext).
- Passthrough: Load Balancer reicht die Bytes durch. Pod muss entschlüsseln. (Sicherer Zero-Trust, aber Pod braucht Zertifikate).
4. Vertiefen
1. Certificate Transparency (CT Logs)
Früher konnten böswillige (oder gehackte) Zertifizierungsstellen (CAs) heimlich ein Zertifikat für google.com ausstellen, um Leute auszuspionieren.
Heute gibt es CT Logs. Jedes öffentlich gültige Zertifikat muss in ein öffentliches, unveränderbares Logbuch geschrieben werden.
Moderne Browser verlangen einen kryptografischen Beweis (SCT), dass das Zertifikat geloggt wurde. Admins von Firmen wie Google können diese Logs überwachen und sehen sofort: "Hoppla, da hat gerade jemand ein Zertifikat für unsere Domain erstellt, das wir gar nicht bestellt haben!". Das macht betrügerische Zertifikate fast unmöglich.
2. OCSP Stapling (Performance vs. Privacy)
Woher weiß mein Browser, ob ein Zertifikat gestern gesperrt wurde (z.B. weil der Server gehackt wurde)? Früher fragte der Browser bei jedem Klick die CA: "Ist dieses Cert noch gültig?" (OCSP). Nachteil:
- Die CA erfährt, welche Webseiten du besuchst (Privacy-Problem).
- Die Webseite lädt langsamer. Beim OCSP Stapling fragt der Server selbst regelmäßig die CA und "tackert" die tagesaktuelle, signierte Gültigkeitsbestätigung direkt an den TLS-Handshake. Der Browser vertraut der Unterschrift der CA und muss selbst niemanden mehr anrufen.
3. Post-Quantum Cryptography (PQC)
Aktuelles TLS basiert auf Mathematik (Primzahlen, Elliptische Kurven), die von zukünftigen Quantencomputern in Sekunden gelöst werden könnte (Shor-Algorithmus). Google und Cloudflare testen bereits Hybrid-Krypto (z.B. X25519Kyber768). Dabei wird die Verbindung zweifach verschlüsselt: Einmal klassisch und einmal mit einem neuen, quantensicheren Algorithmus (Gitter-basierte Kryptografie). Selbst wenn die klassische Verschlüsselung später geknackt wird, schützt die PQC-Schicht die Daten. TLS 1.3 wurde so designt, dass solche neuen Algorithmen leicht nachgerüstet werden können.
5. Prüfen
SSL vs TLS?
Sag immer TLS. SSL ist der Vorgänger von Netscape (90er). SSL 3.0 ist unsicher. TLS 1.0 (1999) ist unsicher. Wir sind bei TLS 1.3. Wenn Leute "SSL-Zertifikat" sagen, meinen sie technisch ein X.509 Zertifikat, das mit TLS genutzt wird.StartTLS?
Ein Upgrade-Mechanismus für alte Protokolle (SMTP, LDAP), die auf Klartext-Ports (25, 389) starten. Client sagt "STARTTLS", dann wird verschlüsselt. Oft unsicherer als reines TLS auf eigenem Port (465, 636), weil "Strip Attack" möglich.HSTS?
Ein Header, der dem Browser sagt: "Rede mit mir NIE WIEDER über HTTP. Nur HTTPS." Verhindert SSL-Stripping Angriffe im Café-WLAN.
Zusammenfassung
- Früher hieß es SSL (Secure Sockets Layer). Das ist seit 1999 tot. Heute heißt es TLS. Es ist der Beton-Tunnel um deine Internet-Kabel. Ohne TLS kann jeder Admin, jeder Hacker im WLAN und jeder Geheimdienst mitlesen, was du sendest. Mit TLS sieht man nur...
- Praxis-Nachtrag: Nutze TLS (Transport Layer Security) in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht TLS (Transport Layer Security) auf, was würde ohne...
Optionale Praxisaufgabe
- Erkläre TLS (Transport Layer Security) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem TLS (Transport Layer Security) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
PKI (Public Key Infrastructure) S3
Überblick: Ein Zertifikat allein reicht nicht. Du brauchst ein ganzes System, um Schlüssel zu verwalten. Eine PKI ist wie das Einwohnermeldeamt + Polizei + Passdruckerei zusammen. Sie regelt: 1. Erstellung: Wie beantragt man einen Ausweis? 2. Verteilung: Wie kommt der Ausweis zum User? 3. Prüfung: Wer darf prüfen? 4. Sperrung: Was passiert, wenn ich meinen Ausweis verliere? (Revocation).
Einfach erklärt: In der Firma: "Ich brauche VPN-Zugang." 1. Du generierst ein Key-Pair. 2. Die PKI (Software) signiert deinen Public Key. 3. Du bekommst das Cert auf deine Smartcard/YubiKey. 4. Wenn du entlassen wirst, setzt der Admin dein Cert auf die Sperrliste (CRL). Ab sofort kommst du nicht mehr rein.
Web of Trust (PGP)?
Der Gegenentwurf zur PKI. Keine zentrale Autorität (CA). User zertifizieren sich gegenseitig ("Ich vertraue Max, und Max vertraut Moritz, also vertraue ich Moritz"). Hat sich im Web nicht durchgesetzt (nicht skalierbar).RA (Registration Authority)?
Der "Schalterbeamte". Die RA prüft den Ausweis, darf aber keine Zertifikate drucken. Sie sagt der CA: "Alles okay, druck mal." (Aufgabentrennung).SSH und PKI?
SSH nutzt standardmäßig keine PKI (sondern "Trust on First Use" - TOFU). Man kann aber SSH Certificates nutzen (mit eigener CA), was in großen Firmen (Netflix, Facebook) Standard ist, um Access Management zu skalieren.
Certificate (Digital Certificate) S2
Überblick: Ein digitaler Ausweis für Computer. Wenn du google.com besuchst, zeigt der Server deinem Browser seinen Ausweis. Darin steht: 1. Wer bin ich? ("Ich bin google.com"). 2. Wer bürgt für mich? ("Unterschrieben von DigiCert"). 3. Wie lange gültig? ("Bis 2025"). 4. Mein öffentlicher Schlüssel: (Damit du mir verschlüsselte Nachrichten senden kannst).
Einfach erklärt: Dateiendungen: .crt / .pem (Der öffentliche Ausweis. Kannst du jedem geben). .key (Der private Schlüssel. Streng geheim! Niemals herausgeben).
Was ist ein Wildcard-Cert?
Gilt für*.example.com. Spart Geld, ist aber riskanter (Private Key gilt für alles).Was passiert bei Ablauf?
Browser blockiert sofort. Deswegen nutzen Profis ACME (Let's Encrypt), um Zertifikate alle 60 Tage vollautomatisch zu erneuern. Keine manuellen Kalender-Einträge mehr!Private Key im Cert?
Nein! Das Zertifikat enthält nur den Public Key. Der Private Key bleibt auf dem Server. Wenn das Cert den Private Key enthielte, könnte sich jeder als Google ausgeben.
TLS Handshake S2
Überblick: Du rufst deine Bank auf (https). Bevor du dein Passwort sendest, müssen Browser und Server zwei Dinge klären: 1. Wer bist du? (Zertifikat prüfen: Ist das wirklich die Bank?). 2. Wie reden wir? (Geheimsprache vereinbaren: Welcher Schlüssel?). Das passiert im TLS Handshake. Er findet nach dem TCP Handshake statt, aber bevor die HTTP-Daten fließen. Erst wenn der Handshake fertig ist, wird der Tunnel "dunkel" (verschlüsselt).
Einfach erklärt: Wenn du curl -v https://google.com machst, siehst du: 1. Client Hello ("Ich kann TLS 1.2 und 1.3"). 2. Server Hello ("Wir nehmen TLS 1.3"). 3. Certificate ("Hier ist mein Ausweis"). 4. Server Key Exchange. Wenn es fehlschlägt: SSLERRORNOCYPHEROVERLAP (Wir sprechen keine gemeinsame Sprache) oder CERTDATEINVALID (Ausweis abgelaufen).
Was ist Cipher Suite?
Eine Liste von Algorithmen.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. "Wir tauschen Schlüssel mit ECDHE, prüfen Identität mit RSA, verschlüsseln Daten mit AES-128 und prüfen Integrität mit SHA256". Client und Server einigen sich auf den stärksten gemeinsamen Nenner.Warum dauert HTTPS länger?
Wegen der RTTs. TCP Handshake (1 RTT) + TLS Handshake (1-2 RTT). Das sind 3x Latenz, bevor das erste Byte kommt. HTTP/3 versucht das zu optimieren.Session Resumption?
Wenn ich die Seite neu lade, muss ich den ganzen Handshake wiederholen? Nein. Der Server gibt mir ein "Session Ticket". Beim nächsten Mal zeige ich das Ticket ("Ich war schon mal da"), und wir nutzen den alten Schlüssel weiter (0-RTT).
mTLS (Mutual TLS) S3
Überblick: Bei normalem HTTPS (z. B. Amazon.com) zeigt der Server seinen Ausweis (Zertifikat). "Ich bin Amazon". Der Browser prüft das. Aber Amazon weiß nicht, wer du bist (Authentifizierung erfolgt erst später per Passwort). Bei mTLS zeigen beide ihren Ausweis. Der Server zeigt sein Zertifikat. Und der Client (Browser oder anderer Server) zeigt auch ein Zertifikat. Wenn der Client kein gültiges Zertifikat hat, wird die Verbindung sofort auf Netzwerk-Ebene getrennt. Es ist extrem sicher, weil keine Passwörter übertragen werden. Es wird oft zwischen Servern (Microservices) eingesetzt ("Zero Trust").
Einfach erklärt: Ohne mTLS: Server A - curl https://server-b (Server B vertraut jedem). Mit mTLS: Server A braucht: 1. client.crt (Öffentlich). 2. client.key (Geheim!). 3. ca.crt (Zum Prüfen von Server B). Server B braucht: 1. server.crt. 2. server.key. 3. ca.crt (Zum Prüfen von Server A). Konfiguration in Nginx: nginx sslclientcertificate /etc/nginx/ca.crt; sslverifyclient on; Wenn du jetzt ohne Zertifikat kommst: 400 Bad Request - No required SSL certificate was sent.
Ersetzt mTLS OAuth/JWT?
Nein. mTLS authentifiziert die Maschine (Service A). JWT authentifiziert den User (Max Mustermann), der die Anfrage ausgelöst hat. Man nutzt beides: mTLS für den Tunnel, JWT im Header für den User-Context.Performance-Kosten?
Der Handshake dauert etwas länger (Client muss Signieren & Senden). Aber die Verschlüsselung (Symmetrisch AES) ist danach genauso schnell wie normales HTTPS. CPU-Overhead ist heute vernachlässigbar.Debugging?
Schmerzhaft. Du kannst mit Wireshark nicht mehr reinschauen.curlgeht nicht mehr einfach so. Du brauchst spezielle Debug-Pods mit den richtigen Zertifikaten ("Netshoot").
Schritt 6 / 65
URL
Adressen, Pfade und Parameter lesen.
S1
Schritt 6 / 65
URL
Adressen, Pfade und Parameter lesen.
1. Verstehen
Eine URL ist die genaue Adresse von etwas im Internet.
So wie dein Haus eine Adresse hat (Straße, Stadt, Land), hat jede Datei im Web eine URL.
Sie steht oben in der Browser-Leiste.
Beispiel: https://www.google.de/bilder/katze.jpg
Sie sagt dem Computer drei Dinge:
- Wie? (Protokoll:
https://) - Wo? (Server:
www.google.de) - Was? (Pfad:
/bilder/katze.jpg)
Merksatz: Die eindeutige Adresse, um eine Webseite, ein Bild oder eine Datei im Internet zu finden.
:level0
Lernbruecke: Eine URL ist eine vollstaendige Adresse. Sie enthält Protokoll, Host, Pfad und manchmal Query-Parameter.
2. Anwenden
Eine URL hat oft noch einen "Schwanz" hinten dran, die Parameter (hinter dem ?).
https://youtube.com/watch?v=dQw4w9WgXcQ
Das ?v=... sagt dem Server: "Ich will das Video mit der ID XYZ sehen."
Mehrere Parameter werden mit & getrennt.
Achte auf URLs in E-Mails!
Wenn da steht sparkasse-sicherheits-check.xyz statt sparkasse.de, ist es Betrug (Phishing). Lies die URL immer von rechts nach links (vor dem ersten /), um die wahre Domain zu erkennen.
:level1
Praxisbeispiel: https://api.example.com/users?active=true nutzt HTTPS, spricht den Host api.example.com an, ruft den Pfad /users auf und filtert per Query nach aktiven Nutzern.
3. Technisch einordnen
1. URL Encoding (Prozentzeichen)
URLs dürfen keine Leerzeichen enthalten. Und keine Sonderzeichen wie ü oder ö (historisch).
Deshalb werden sie "maskiert" (encoded).
Ein Leerzeichen wird zu %20.
Ein ü wird zu %C3%Bc.
Wenn du eine URL kopierst und sie plötzlich 3 Meter lang ist und voller % Zeichen, ist das URL Encoding.
2. Anker (#Hash)
Manchmal sieht man ein # am Ende: wikipedia.org/wiki/Hund#Verhalten.
Dieser Teil wird nicht an den Server gesendet!
Der Browser lädt die Seite "Hund" und springt dann automatisch runter zum Abschnitt "Verhalten". Das passiert rein lokal bei dir.
Technisch fuehren kleine URL-Fehler zu großen Problemen: falscher Slash, falscher Port, falsch encodierte Zeichen oder Query-Parameter am falschen Ort können einen Request ungueltig machen.
4. Vertiefen
1. URI vs. URL vs. URN
Das ist die akademische Dreifaltigkeit des Webs:
- URI (Identifier): Der Oberbegriff für alles.
- URL (Locator): Sagt dir, wie und wo du es findest (
https://...). - URN (Name): Ein Name, der für immer gleich bleibt, egal wo die Datei liegt. Beispiel: Eine ISBN-Nummer eines Buches ist eine URN. Sie identifiziert das Buch, sagt dir aber nicht, in welchem Regal es steht (dafür brauchst du die URL). Im Alltag sagen fast alle einfach "URL".
2. Homograph Attacks (Unicode-Betrug)
Ein gefährlicher Trick: Hacker registrieren Domains, die fast exakt so aussehen wie das Original, aber Unicode-Zeichen nutzen.
Beispiel: googIe.com (mit einem großen i statt kleinem l).
Noch schlimmer: apple.com, wobei das a ein kyrillisches а (U+0430) ist. Für dein Auge ist es identisch.
Moderne Browser schützen dich, indem sie solche "gemischten" Schriften in der Adressleiste als Punycode anzeigen (xn--pple-43d.com), wenn sie verdächtig erscheinen.
3. URL-Limitierungen
Es gibt keine offizielle Grenze für die Länge einer URL im Standard.
Aber: In der Praxis begrenzen Browser (besonders der alte Internet Explorer) und Webserver (Nginx, Apache) die Länge oft auf ca. 2.048 oder 8.192 Zeichen.
Das ist wichtig für Entwickler: Wenn du versuchst, ein ganzes Bild oder hunderte Filter-Einstellungen in die URL-Parameter zu quetschen, wird der Request irgendwann mit dem Fehler 414 Request-URI Too Large abgelehnt. Für große Datenmengen nutzt man daher immer einen POST-Body statt der URL.
5. Prüfen
Was ist der Unterschied zwischen URL und Domain?
Die Domain ist nur der Name des Hauses (google.de). Die URL ist die komplette Wegbeschreibung zum Zimmer (https://google.de/maps). Jede URL enthält eine Domain.Was bedeutet
httpsam Anfang?Dass die Verbindung verschlüsselt ist (S = Secure). Niemand kann mitlesen, welche Seite du aufrufst.Warum sehe ich manchmal "404 Not Found"?
Weil die URL auf eine Datei zeigt, die es nicht mehr gibt. Die Adresse ist gültig, aber das Haus ist leer.
Zusammenfassung
- Eine URL ist die genaue Adresse von etwas im Internet. So wie dein Haus eine Adresse hat (Straße, Stadt, Land), hat jede Datei im Web eine URL. Sie steht oben in der Browser-Leiste. Beispiel: https://www.google.de/bilder/katze.jpg
- Eine URL hat oft noch einen "Schwanz" hinten dran, die Parameter (hinter dem ?). https://youtube.com/watch?v=dQw4w9WgXcQ Das ?v=... sagt dem Server: "Ich will das Video mit der ID XYZ sehen." Mehrere Parameter werden mit & getrennt.
- Technisch fuehren kleine URL-Fehler zu großen Problemen: falscher Slash, falscher Port, falsch encodierte Zeichen oder Query-Parameter am falschen Ort können einen Request ungueltig machen.
Optionale Praxisaufgabe
- Erkläre URL in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem URL relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Internet S1
Überblick: Das Internet ist ein weltweites Netz aus vielen verbundenen Netzwerken. Es verbindet Computer, Server, Smartphones und Router über gemeinsame Protokolle. Webseiten, E-Mail, Messenger, Streaming und viele Cloud-Dienste laufen darauf.
Einfach erklärt: Wenn du eine Adresse in den Browser eingibst, wird zuerst die Domain aufgelöst, dann wird eine Verbindung zum passenden Server aufgebaut. Dein Heimrouter verbindet dein lokales Netzwerk mit dem Netz deines Providers. Danach wandern Daten in Paketen über mehrere Zwischenstationen zum Ziel.
Tiefer verstanden: Das Internet basiert auf IP-Adressen, Routing, DNS, TCP/UDP und hoeheren Protokollen wie HTTP. Kein einzelner Betreiber kontrolliert alles. Viele autonome Netze tauschen Routen aus und leiten Pakete weiter. Dadurch ist das Internet robust, aber auch abhaengig von sauberer Konfiguration, Sicherheit und Standards.
Praxisgrenze: Das Internet garantiert nicht automatisch Geschwindigkeit, Vertraulichkeit oder Verfügbarkeit. Latenz, Paketverlust, DNS-Probleme, Providerstörungen und Angriffe können Dienste stoeren. Sicherheit entsteht erst durch zusätzliche Schichten wie TLS, Authentifizierung, Firewalls und Monitoring.
Ist das Internet dasselbe wie das Web?
Nein. Das Web ist ein Dienst auf dem Internet. E-Mail, DNS, SSH oder Messenger nutzen ebenfalls das Internet, sind aber nicht einfach Webseiten.Warum braucht man DNS?
DNS übersetzt lesbare Namen wie example.com in IP-Adressen, damit Computer den passenden Server finden.Was ist eine typische Fehlerannahme?
Zu glauben, dass "Internet geht nicht" immer am eigenen Gerät liegt. Ursache kann auch DNS, Router, Provider, Server oder Routing sein.
Browser S1
Überblick: Das Internet ist wie eine riesige Bibliothek. Webseiten sind die Bücher. Der Browser ist deine Lesebrille. Ohne ihn siehst du nur kryptischen Code (HTML). Der Browser übersetzt diesen Code in schöne Bilder, Texte und Videos. Die bekanntesten sind Google Chrome, Apple Safari, Microsoft Edge und Mozilla Firefox.
Einfach erklärt: Das wichtigste Feld ist oben: Die Adressleiste (URL-Bar). Dort gibst du ein, wo du hin willst (google.de). Moderne Browser haben auch: Tabs: Mehrere Seiten gleichzeitig offen. Lesezeichen: Merken von Lieblingsseiten. Erweiterungen (Extensions): Miniprogramme wie Werbeblocker oder Passwort-Manager.
Ist Google ein Browser?
Nein. Google ist eine Suchmaschine. Chrome ist der Browser. Viele verwechseln das, weil Chrome von Google stammt und die Suche eingebaut hat.Was ist der Inkognito-Modus?
Er speichert keinen Verlauf und keine Cookies auf deinem PC. Aber Achtung: Dein Chef und dein Internetanbieter sehen trotzdem, was du machst! Er macht dich nicht unsichtbar im Netz.Warum frisst Chrome so viel RAM?
Wegen der Isolation (Sandbox). Jeder Tab ist ein eigener Prozess. Wenn ein Tab abstürzt, reißt er die anderen nicht mit. Das kostet aber viel Speicher.
Schritt 6.1 / 65
Routing
Verstehen, welche Anfrage wohin geleitet wird.
S1
Schritt 6.1 / 65
Routing
Verstehen, welche Anfrage wohin geleitet wird.
1. Verstehen
Einsteiger-Brücke: Wenn du Routing zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Routing ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Routing entscheidet, welcher Weg oder welche Funktion für eine Anfrage zuständig ist.
Merksatz: Routing ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Routing ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Wenn du eine URL öffnest, muss das System entscheiden: Welche Seite, API oder welcher Service bekommt diese Anfrage?
Typische Anfängerfrage: Woran erkenne ich Routing im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Routing steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Routing gibt es im Backend, im Frontend, im Netzwerk und im Reverse Proxy.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Routing zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Routing funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Professionelle Routing-Regeln berücksichtigen Reihenfolge, Wildcards, Methoden, Versionen, Mandanten, Authentifizierung und Fehlerfälle.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Routing ohne Fachsprache.
In einfachen Worten: Routing entscheidet, welcher Weg oder welche Funktion für eine Anfrage zuständig ist. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Routing praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Routing ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem url und api. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Routing zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Routing ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technischer Zusammenhang: Routing steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht,...
Optionale Praxisaufgabe
- Erkläre Routing in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Routing relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 7 / 65
Domain
Namen für Webdienste verstehen.
S1
Schritt 7 / 65
Domain
Namen für Webdienste verstehen.
1. Verstehen
Computer finden sich im Internet über IP-Adressen (Nummern wie 142.250.185.206).
Menschen können sich Zahlen schlecht merken.
Deshalb gibt es Domains.
Statt der Nummer tippst du google.de.
Das ist wie im Telefonbuch: Du suchst den Namen ("Müller"), um die Nummer zu finden.
Die Domain ist deine Adresse im Internet.
Merksatz: Ein weltweit eindeutiger Name für einen Bereich im Internet, der meist eine Webseite repräsentiert.
:level0
Lernbruecke: Eine Domain ist ein menschenlesbarer Name für einen Dienst, zum Beispiel example.com. Menschen merken sich Namen, Computer brauchen am Ende IP-Adressen.
2. Anwenden
Eine Domain besteht aus Teilen:
www.beispiel.de
.de: Top-Level-Domain (TLD). Die Endung (Länder wie .de, .fr oder allgemein .com, .org).beispiel: Second-Level-Domain. Dein Wunschname.www: Subdomain. Ein Unterbereich (kann auchshop.beispiel.deodermail.beispiel.desein).
Du mietest eine Domain bei einem "Hoster" (Strato, Ionos) für ca. 10 € im Jahr.
:level1
Praxisbeispiel: api.example.com kann auf dein Backend zeigen, während www.example.com die Website ausliefert. Subdomains helfen, Dienste sauber zu trennen.
Praxisroutine
In der Praxis lernst du Domain, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. DNS (Domain Name System)
Das System, das Namen in Nummern übersetzt.
Wenn du google.de tippst, fragt dein PC einen DNS-Server: "Welche IP hat google.de?"
DNS ist das Telefonbuch des Internets.
2. Whois
Jede Domain hat einen Besitzer. Früher stand das öffentlich im "Whois"-Verzeichnis (Name, Adresse, Telefon). Wegen Datenschutz (DSGVO) sind diese Daten heute meistens versteckt. Die ICANN (Organisation in den USA) verwaltet weltweit alle Domains.
:level2Technisch wird eine Domain über DNS auf Ziele abgebildet. Für Backends sind A/AAAA, CNAME, TTL und TLS-Zertifikate wichtig, weil sie Erreichbarkeit und Sicherheit beeinflussen.
Technische Einordnung im System
Technisch ist Domain nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. FQDN und der "versteckte" Punkt
Was wir sehen (www.google.com), ist technisch falsch herum geschrieben.
Die echte Hierarchie der Domain-Namensauflösung im DNS-System beginnt ganz rechts, an der absolut höchsten Instanz, der Root-Zone.
Ein strikt Fully Qualified Domain Name (FQDN) endet immer mit einem Punkt: www.google.com..
Dieser verschwiegene Punkt zwingt eiserne Router-Anfragen zum weltweiten Root-DNS-Cluster. Lässt du den FQDN-Punkt bei internen Firmennetzwerken weg (z.B. nur Aufruf wiki), hängt der Computer blind sein eigenes lokales Such-Suffix ran (z.B. wiki.intern.firma.local) in der Hoffnung, dass das klappt.
2. TLD-Delegationen (Top Level Domains)
Die ICANN regiert nicht selbst über .de oder .com.
Sie delegiert die administrative Macht (Zone Delegation) per hartem NS-Record auf lokale Registries (wie die DENIC eG in Frankfurt für .de).
Die DENIC verwaltet ein Riesen-Zonenfile mit 17 Millionen Einträgen und verknüpft Domainnamen mit den IPs der Provider (Strato/1&1). Dieses ultra-strikt geregelte Monopoly verhindert Doppelbuchungen.
Neue Exoten (z.B. .app oder .dev) gehören fast exklusiv Firmen (in diesem Fall Google), die dann diktieren können: "Du darfst diese Domain nur nutzen, wenn du HTTPS-Zertifikate kaufst (HSTS-Preloading)."
3. Punycode (IDN: Internationalisierte Domains)
DNS ist ein Steinalt-System aus den 1980ern, das nur 7-Bit ASCII (American Standard Code for Information Interchange)-Zeichn (A-Z, 0-9, Strich) auf Netzwerkkabeln toleriert. Umlaute (ö), Arabisch oder Chinesisch sprengen das Protokoll.
Damit man www.müller.de kaufen kann, gibt es den Punycode.
Dein Browser übersetzt das Wort im Hintergrund automatisch in einen abstrakten ACE-String (ASCII Compatible Encoding), signalisiert durch xn--.
Du klickst auf müller.de, dein Browser schickt per UDP auf Port 53 aber www.xn--mller-kva.de. Hackern war es so möglich, Domains in Kyrillisch (das russische a sieht identisch zum englischen a aus) zu faken – die URL-Bar sah legitim aus (apple.com), aber der Punycode führte nach Russland (Homograph-Attacken).
5. Prüfen
Gehört mir die Domain für immer?
Nein, du mietest sie nur. Wenn du vergisst zu zahlen, wird sie gelöscht und jemand anderes kann sie schnappen ("Domain Grabbing").Was ist besser: .de oder .com?
In Deutschland wirkt .de vertrauenswürdiger. International ist .com der König. Neue Endungen wie .shop oder .berlin sind okay, aber die Leute vertippen sich oft.Was passiert, wenn ich eine Marke als Domain nehme?
Ärger. Wenn ducocacola-berlin.deregistrierst, wird Coca-Cola dich verklagen (Markenrecht) und dir die Domain wegnehmen.
Zusammenfassung
- Computer finden sich im Internet über IP-Adressen (Nummern wie 142.250.185.206). Menschen können sich Zahlen schlecht merken. Deshalb gibt es Domains. Statt der Nummer tippst du google.de. Das ist wie im Telefonbuch: Du suchst den Namen ("Müller"), um die...
- Eine Domain besteht aus Teilen: www.beispiel.de .de: Top-Level-Domain (TLD). Die Endung (Länder wie .de, .fr oder allgemein .com, .org). beispiel: Second-Level-Domain. Dein Wunschname. www: Subdomain. Ein Unterbereich (kann auch shop.beispiel.de oder...
- Technisch wird eine Domain über DNS auf Ziele abgebildet. Für Backends sind A/AAAA, CNAME, TTL und TLS-Zertifikate wichtig, weil sie Erreichbarkeit und Sicherheit beeinflussen.
Optionale Praxisaufgabe
- Erkläre Domain in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Domain relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Internet S1
Überblick: Das Internet ist ein weltweites Netz aus vielen verbundenen Netzwerken. Es verbindet Computer, Server, Smartphones und Router über gemeinsame Protokolle. Webseiten, E-Mail, Messenger, Streaming und viele Cloud-Dienste laufen darauf.
Einfach erklärt: Wenn du eine Adresse in den Browser eingibst, wird zuerst die Domain aufgelöst, dann wird eine Verbindung zum passenden Server aufgebaut. Dein Heimrouter verbindet dein lokales Netzwerk mit dem Netz deines Providers. Danach wandern Daten in Paketen über mehrere Zwischenstationen zum Ziel.
Tiefer verstanden: Das Internet basiert auf IP-Adressen, Routing, DNS, TCP/UDP und hoeheren Protokollen wie HTTP. Kein einzelner Betreiber kontrolliert alles. Viele autonome Netze tauschen Routen aus und leiten Pakete weiter. Dadurch ist das Internet robust, aber auch abhaengig von sauberer Konfiguration, Sicherheit und Standards.
Praxisgrenze: Das Internet garantiert nicht automatisch Geschwindigkeit, Vertraulichkeit oder Verfügbarkeit. Latenz, Paketverlust, DNS-Probleme, Providerstörungen und Angriffe können Dienste stoeren. Sicherheit entsteht erst durch zusätzliche Schichten wie TLS, Authentifizierung, Firewalls und Monitoring.
Ist das Internet dasselbe wie das Web?
Nein. Das Web ist ein Dienst auf dem Internet. E-Mail, DNS, SSH oder Messenger nutzen ebenfalls das Internet, sind aber nicht einfach Webseiten.Warum braucht man DNS?
DNS übersetzt lesbare Namen wie example.com in IP-Adressen, damit Computer den passenden Server finden.Was ist eine typische Fehlerannahme?
Zu glauben, dass "Internet geht nicht" immer am eigenen Gerät liegt. Ursache kann auch DNS, Router, Provider, Server oder Routing sein.
ASCII (American Standard Code for Information Interchange) S1
Überblick: Der Ur-Großvater (1963). Er definierte: Nummer 65 = A. Nummer 97 = a. Nummer 32 = Leerzeichen. Er benutzte nur 7 Bit (Zahlen 0 bis 127). Das reichte für das englische Alphabet, Zahlen und !?.. Es reichte nicht für Deutsch (ä, ö), Französisch oder gar Chinesisch. Trotzdem ist ASCII das Fundament. UTF-8 ist extra so gebaut, dass es ASCII "enthält".
Einfach erklärt: Heute benutzt man "reines" ASCII kaum noch, außer in sehr alten Protokollen oder Embedded Systems. Aber: Wenn du eine Textdatei öffnest und nur englischen Text siehst, ist es technisch gesehen ASCII (und gleichzeitig gültiges UTF-8). Unterschied: Größe: ASCII war immer genau 1 Byte pro Zeichen (das 8. Bit war 0).
Warum 7 Bit?
Das 8. Bit wurde früher als "Paritäts-Bit" zur Fehlererkennung auf schlechten Leitungen genutzt.ASCII Art?
Bilder aus Textzeichen.:-)Früher Kunstform, weil Terminals keine Grafik konnten.EBCDIC?
Der böse Rivale von IBM-Großrechnern. Völlig inkompatibel zu ASCII (Awar nicht 65). Hat den Format-Krieg verloren.
Schritt 8 / 65
DNS
Wie Domains zu Servern finden.
S1
Schritt 8 / 65
DNS
Wie Domains zu Servern finden.
1. Verstehen
DNS ist das Telefonbuch des Internets.
Computer verstehen keine Wörter wie google.de. Sie verstehen nur Zahlen (IP-Adressen) wie 142.250.185.35.
Wenn du google.de eingibst, fragt dein Computer beim DNS-Server nach:
"Hey, welche Nummer hat Google?"
Der DNS-Server antwortet: "Google wohnt unter 142.250.185.35".
Erst dann kann dein Computer die Verbindung aufbauen.
Ohne DNS müsstest du dir für jede Webseite eine komplizierte Nummer merken.
Merksatz: Das System, das menschenlesbare Domains (google.de) in maschinenlesbare IP-Adressen übersetzt.
Lernbruecke für Anfänger
Wenn du bei DNS ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Wie Domains zu Servern finden. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Normalerweise macht dein Router (FritzBox) das automatisch (er fragt den DNS deines Providers). Aber viele Pros ändern ihren DNS-Server. Warum?
- Geschwindigkeit: Google DNS (
8.8.8.8) oder Cloudflare (1.1.1.1) sind oft schneller als der vom Provider. - Zensur umgehen: Manche Provider sperren Webseiten per DNS ("Du darfst Kinox.to nicht auflösen"). Ein anderer DNS-Server hebt die Sperre auf.
- Sicherheit: Manche DNS-Server (Quad9) blockieren automatisch bekannte Viren-Seiten.
Praxisroutine
In der Praxis lernst du DNS, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. DNS Records
Im Telefonbuch steht mehr als nur die Nummer.
- A-Record: IPv4 Adresse (Standard).
google.de -> 1.2.3.4 - AAAA-Record: IPv6 Adresse (Neu).
google.de -> 2001:0db8... - MX-Record: Mail Exchange. "Wo sollen E-Mails hin?" (Wichtig für Firmen).
- TXT-Record: Notizzettel. Oft genutzt für Verifizierungen ("Beweise, dass dir die Domain gehört").
2. Caching & TTL
DNS ist dezentral. Es gibt nicht ein Telefonbuch, sondern Millionen, die sich austauschen. Damit das Netz nicht verstopft, werden Antworten gecached. TTL (Time To Live): Wie lange ist die Info gültig? (z. B. 1 Stunde). Wenn du deine Webseite umziehst (neue IP), dauert es oft bis zu 24 Stunden, bis das "alle Namenbücher der Welt" gelernt haben (DNS Propagation).
4. Vertiefen
1. Rekursive Resolution & Root Server
Wie genau löst dein Router (Resolver) blog.google.com auf, wenn der Cache leer ist?
DNS wandert streng hierarchisch von rechts nach links.
- Root-Server (
.): Dein Router fragt einen von 13 globalen Root-Servern (z.B. a.root-servers.net): "Ich kenne.comnicht, wer ist das?". - TLD-Server (
com): Der Root-Server verweist dich an den TLD (Top Level Domain) Server von Verisign: "Frag den.comServer". - Authoritative Nameserver (
google.com): Der.comServer sagt: "Google.com wird von den Nameservernns1.google.comverwaltet." - Dein Router fragt endlich den echten Google-Server: "Wer ist
blog.google.com?". Die finale IP (A-Record) wird zurückgegeben ("Rekursive Auflösung abgeschlossen").
2. DNS-over-HTTPS (DoH) & DNS-over-TLS (DoT)
Historisch passiert DNS via unverschlüsseltem UDP (Port 53).
Der Internet-Provider (ISP), dein Arbeitgeber oder ein Hacker im Café fängt diesen Request im Klartext ab (Deep Packet Inspection), protokolliert "Aha, User geht auf wiki.com" und kann DNS-Zensur (Sperren) oder Spoofing betreiben (dich auf eine Phishing-Seite umleiten).
DoH tunnelt die extrem kurzen DNS-Anfragen komplett in stinknormale verschlüsselte HTTPS-Streams (Port 443). Für den Provider oder die chinesische Firewall sieht die Abfrage optisch aus wie ein harmloser Aufruf einer beliebigen https:// Website. Es hebelt Zensur und Sniffing rigoros aus (sehr zum Ärger von autoritären Staaten und Firmen-Firewalls).
3. DNSSEC (DNS Security Extensions)
Gegen das "Poisoning" (Vergiften der BGP-Routen oder DNS Caches durch Hacker, um dich umzuleiten) existiert DNSSEC. Es nutzt asymmetrische Kryptografie (Public Key Infrastructur), ohne direkte SSL Zertifikate zu sein. Wenn Cloudflare deinen DNS Record verwaltet, unterschreibt er den fertigen Zone-File-Eintrag (RRSIG). Dein auflösender DNS-Resolver validiert die Signatur hierarchisch hoch bis zu einem Trust-Anchor (Root-Zone). Antwortet ein manipulierter, ausländischer Server frech mit einer gefälschten Bank-IP, erkennt dein Browser sofort "Die DNSSEC Kryptografie-Signatur fehlt oder ist gebrochen! Warnung!" (SERVFAIL). Leider ist die globale Adoption wegen hoher administrativer Komplexität schleppend.
5. Prüfen
Was passiert, wenn der DNS-Server ausfällt?
Das Internet "fühlt" sich kaputt an. Du kommst auf keine Webseite mehr. Skype oder WhatsApp könnten aber noch gehen, wenn sie IPs direkt benutzen.Was ist
hosts?Eine Textdatei auf deinem PC (C:\Windows\System32\drivers\etc\hosts). Das ist dein privates Mini-Telefonbuch. Was da steht, gilt vor dem DNS. Wichtig für Entwickler ("Gaukle dem PC vor, dass testseite.local auf meinem PC läuft").Ist DNS verschlüsselt?
Standardmäßig nein! Jeder (WLAN-Betreiber) kann sehen, welche Domains du abfragst. Neuere Standards wie DoH (DNS over HTTPS) verschlüsseln auch das Nachschlagen.
Zusammenfassung
- DNS ist das Telefonbuch des Internets. Computer verstehen keine Wörter wie google.de. Sie verstehen nur Zahlen (IP-Adressen) wie 142.250.185.35. Wenn du google.de eingibst, fragt dein Computer beim DNS-Server nach: "Hey, welche Nummer hat Google?" Der...
- Normalerweise macht dein Router (FritzBox) das automatisch (er fragt den DNS deines Providers). Aber viele Pros ändern ihren DNS-Server. Warum? Geschwindigkeit: Google DNS (8.8.8.8) oder Cloudflare (1.1.1.1) sind oft schneller als der vom Provider. Zensur...
Optionale Praxisaufgabe
- Erkläre DNS in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem DNS relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
IP Address S1
Überblick: Eine IP-Adresse ist die eindeutige Wohnadresse eines Geräts in einem Computernetzwerk. Stell dir vor, du möchtest deinem Freund einen Brief schreiben. Wenn du nur "An Tom" draufschreibst, kommt der Brief nie an. Du brauchst Straße, Hausnummer und Postleitzahl.
Einfach erklärt: Im Alltag begegnen dir zwei Arten von IPs, die oft verwechselt werden:
Warum hat dein Laptop zu Hause meist eine IP, die mit
192.168...anfängt?Das ist ein reservierter Bereich für private Netzwerke (RFC1918). Diese IPs werden im Internet nicht geroutet.Was ist der Unterschied zwischen
127.0.0.1und deiner öffentlichen IP?127.0.0.1bist nur du (interner Monolog). Deine öffentliche IP ist deine Adresse für die Außenwelt.Warum brauchen wir IPv6 wirklich dringend?
Weil wir mehr als 4 Milliarden Geräte haben (Handys, IoT, Autos). IPv4 ist mathematisch am Ende.
Internet S1
Überblick: Das Internet ist ein weltweites Netz aus vielen verbundenen Netzwerken. Es verbindet Computer, Server, Smartphones und Router über gemeinsame Protokolle. Webseiten, E-Mail, Messenger, Streaming und viele Cloud-Dienste laufen darauf.
Einfach erklärt: Wenn du eine Adresse in den Browser eingibst, wird zuerst die Domain aufgelöst, dann wird eine Verbindung zum passenden Server aufgebaut. Dein Heimrouter verbindet dein lokales Netzwerk mit dem Netz deines Providers. Danach wandern Daten in Paketen über mehrere Zwischenstationen zum Ziel.
Tiefer verstanden: Das Internet basiert auf IP-Adressen, Routing, DNS, TCP/UDP und hoeheren Protokollen wie HTTP. Kein einzelner Betreiber kontrolliert alles. Viele autonome Netze tauschen Routen aus und leiten Pakete weiter. Dadurch ist das Internet robust, aber auch abhaengig von sauberer Konfiguration, Sicherheit und Standards.
Praxisgrenze: Das Internet garantiert nicht automatisch Geschwindigkeit, Vertraulichkeit oder Verfügbarkeit. Latenz, Paketverlust, DNS-Probleme, Providerstörungen und Angriffe können Dienste stoeren. Sicherheit entsteht erst durch zusätzliche Schichten wie TLS, Authentifizierung, Firewalls und Monitoring.
Ist das Internet dasselbe wie das Web?
Nein. Das Web ist ein Dienst auf dem Internet. E-Mail, DNS, SSH oder Messenger nutzen ebenfalls das Internet, sind aber nicht einfach Webseiten.Warum braucht man DNS?
DNS übersetzt lesbare Namen wie example.com in IP-Adressen, damit Computer den passenden Server finden.Was ist eine typische Fehlerannahme?
Zu glauben, dass "Internet geht nicht" immer am eigenen Gerät liegt. Ursache kann auch DNS, Router, Provider, Server oder Routing sein.
Router S1
Überblick: Der Router ist der Postbote und Übersetzer deines Heimnetzwerks. Er verbindet zwei Welten: 1. Dein privates Zuhause (LAN). 2. Das öffentliche Internet (WAN).
Einfach erklärt: In Deutschland steht fast überall eine FritzBox oder ein Speedport. Diese Geräte sind eigentlich "All-in-One-Wunderkisten": Modem: Übersetzt Telefon-Signale in digitale Daten. Router: Verteilt Daten (Routing). Switch: Die 4 gelben Buchsen hinten (für Kabel). Access Point: Macht WLAN. Telefonanlage: Für DECT-Telefone.
Ist ein Router das Gleiche wie ein Modem?
Nein. Das Modem ist der "Übersetzer" (Kupferkabel -> Digital). Der Router ist der "Verteiler". Heutige Geräte haben aber beides in einem Gehäuse.Was bedeutet "Reboot tut gut"?
Router sind kleine Computer (mit CPU und RAM). Wenn der Speicher vollläuft oder ein Prozess hängt, wird das Internet langsam. Ein Neustart (Stecker ziehen) löst 90% aller Probleme.Was ist der Unterschied zum Switch?
Ein Switch verbindet Geräte innerhalb eines Netzwerks (PC zu Drucker). Ein Router verbindet verschiedene Netzwerke (Dein Haus zum Internet).
Schritt 9 / 65
API
Schnittstellen zwischen Anwendungen verstehen.
S1
Schritt 9 / 65
API
Schnittstellen zwischen Anwendungen verstehen.
1. Verstehen
Eine API (Application Programming Interface) ist der universelle Vermittler zwischen verschiedenen Software-Systemen. Man kann es sich – ganz klassisch – wie einen Kellner in einem Restaurant vorstellen, aber schauen wir uns das Detail genauer an:
Du (der Client) sitzt im Restaurant am Tisch. Du möchtest etwas essen (die Daten), das in der Küche (dem Server) zubereitet wird. Das Problem: Du kannst nicht einfach in die Küche stürmen.
- Du kennst dich dort nicht aus (Komplexität).
- Du würdest den Köchen im Weg stehen (Effizienz).
- Du dürftest dort aus hygienischen Gründen gar nicht sein (Sicherheit).
Hier kommt der Kellner (die API) ins Spiel. Er kommt zu dir an den Tisch und bringt dir die Speisekarte (die Dokumentation). Du darfst nur das bestellen, was auf der Karte steht. Du sagst ihm: "Ich möchte die Nummer 12" (der Request). Der Kellner notiert das, geht in die Küche, gibt die Anweisung an die Köche weiter, wartet auf das Gericht und serviert es dir am Ende fix und fertig (die Response).
Du musst nicht wissen, wie der Herd funktioniert oder wo die Pfannen hängen. Du musst nur wissen, wie man bestellt. Genau so funktioniert Software: Deine Wetter-App weiß nicht, wie man Temperatur misst. Sie fragt einfach die API des Wetterdienstes: "Wie warm ist es in Berlin?" und zeigt die Antwort an.
Merksatz: Eine API ist der definierte Weg, wie zwei Programme miteinander sprechen, ohne dass sie die inneren Geheimnisse des anderen kennen müssen.
2. Anwenden
Wenn du Tools wie n8n, Zapier oder Make nutzt, bist du im Grunde ein "API-Manager". Du verknüpfst verschiedene Dienste miteinander.
Real-World Example: "Login mit Google"
Das ist eines der häufigsten API-Beispiele im Alltag.
- Du öffnest eine neue App, z. B. Spotify.
- Spotify möchte wissen, wer du bist, hat aber keine Lust, ein eigenes Passwort-System zu bauen.
- Spotify nutzt die Google Identity API.
- Wenn du auf "Login mit Google" klickst, schickt Spotify einen Boten (API Call) zu Google: "Hey, der User sagt, er ist Tim. Stimmt das?"
- Google prüft dein Passwort (bei sich im sicheren Tresor) und sagt dem Boten: "Ja, das ist Tim. Hier ist sein Ausweis."
- Spotify lässt dich rein.
Wichtige Begriffe für Anwender
- Endpoint: Das ist der "Schalter", an dem du deine Anfrage abgibst. Das sieht aus wie eine Web-Adresse, z. B.
https://api.twitter.com/v2/tweets. Method: Die Art der Bestellung. Willst du etwas haben (GET), etwas neues abgeben (POST) oder etwas löschen (DELETE)?
Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: Wenn du Tools wie n8n, Zapier oder Make nutzt, bist du im Grunde ein "API-Manager". Du verknüpfst verschiedene Dienste miteinander.- Payload / Body: Das "Paket", das du mitschickst. Wenn du einen neuen Kontakt anlegst, stehen hier Name und E-Mail drin.
- API Key: Dein Ausweis. Ohne den ignoriert dich der Kellner.
3. Technisch einordnen
Hier gehen wir tief in die Mechanik. Eine moderne Web-API (meist RESTful) folgt strengen Regeln des HTTP-Protokolls. Wenn du als Developer oder Automation Engineer arbeitest, musst du verstehen, was "unter der Haube" passiert.
1. Anatomie eines API-Calls
Ein API-Aufruf besteht nicht nur aus "Frage und Antwort". Es ist ein präzises Datenpaket.
- Der Header: Das sind die Meta-Informationen. Hier klebt der Briefumschlag zu. Im Header steht z. B.
Content-Type: application/json(damit der Server weiß: "Aha, da kommt Text im JSON-Format") und oft derAuthorization-Token (dein Schlüssel). - Der Body: Die Nutzlast. Bei einem
GET-Request (z. B. "Gib mir alle Kunden") ist der Body meist leer. Bei einemPOST-Request ("Erstelle Kunde") steht hier das JSON-Objekt:{"name": "Max", "email": "[email protected]"}.
2. Status Codes: Die Sprache des Servers
Der Server antwortet immer mit einem 3-stelligen Code. Den musst du lesen können:
- 2xx (Erfolg):
200 OK(Alles gut),201 Created(Habe den Kunden angelegt). - 4xx (Dein Fehler):
400 Bad Request(Du hast Quatsch geschickt),401 Unauthorized(Schlüssel fehlt),403 Forbidden(Schlüssel da, aber du darfst das nicht),404 Not Found(Endpoint falsch). - 5xx (Server Fehler):
500 Internal Server Error(Der Server brennt),502 Bad Gateway(Der Server erreicht die Datenbank nicht).
3. REST vs. GraphQL (Architektur-Kampf)
Die meisten APIs heute sind REST (Representational State Transfer).
- Konzept: Es gibt "Ressourcen" (Kunden, Produkte, Bestellungen). Jede hat eine eigene URL.
- Problem: "Over-fetching". Du willst nur den Namen des Users, musst aber den Endpoint
/users/123abrufen, der dir alles schickt (Adresse, Schuhgröße, Hobby). Das verschwendet Datenvolumen.
Deshalb nutzen Tech-Giganten wie Facebook, Netflix oder Shopify oft GraphQL.
- Konzept: Es gibt nur einen Endpoint. Du schickst eine "Query" (eine Wunschliste) hin: "Ich will von User 123 nur den Namen".
- Vorteil: Extrem effizient für Mobile Apps, wo jedes Kilobyte zählt.
4. Rate Limiting & Quotas
APIs sind teuer zu betreiben. Damit niemand den Server "DDOS-t" (kaputt macht), gibt es Limits.
- Rate Limit: "Maximal 60 Anfragen pro Minute". (Der Türsteher lässt nur einen pro Sekunde rein).
- Quota: "Maximal 10.000 Anfragen im Monat". (Dein Handyvertrag).
Wenn du das Limit übertriffst, sendet die API den Code
429 Too Many Requests. Gute Automatisierungs-Scripts (in Python oder n8n) müssen das abfangen ("Sleep" einbauen), sonst stürzen sie ab.
4. Vertiefen
1. Das HAL und HATEOAS Konzept
Die strengsten REST-APIs erfüllen das "Glory of REST" Level 3: HATEOAS (Hypermedia as the Engine of Application State).
Das bedeutet, die API liefert nicht nur Nackte Daten. Sie liefert im Output direkt die Links (rel="next", rel="delete") mit, die der Client als nächstes ausführen darf.
{
"orderId": 44,
"status": "shipped",
"links": {
"cancel": "https://api.shop.com/orders/44/cancel" // Nur da, wenn man noch abbrechen darf!
}
}
Der Client muss keine URLs hardcoden. Das Backend diktiert dynamisch über das Payload die möglichen Zustandsübergänge des Clients (so wie HTML-Links auf einer Website navigieren).
2. Idempotenz und HTTP Methoden
Eine API muss berechenbar sein.
Die Methoden GET, PUT und DELETE gelten bei echten REST APIs als idempotent.
Egal, ob du den Request DELETE /kunden/123 ein einziges Mal sendest oder 10.000 Mal hintereinander (weil das Netzwerk hängt und dein Script Retries auslöst) – das Endergebnis im System ist das exakt gleiche: Der Kunde existiert nicht mehr.
POST /kunden ist nicht idempotent! Feuerst du das 10 Mal ab, weil das Netzwerk stottert, hast du 10 Klone des Kunden in der Datenbank. Deshalb schickt man bei modernen Systemen oft einen Unique Tracking-Key (Stripe Idempotency-Key Header) mit.
3. RPC (Remote Procedure Call) & gRPC
Nicht alles muss REST (Ressourcen-basiert) sein. Bei RPC-APIs ruft der Client direkt eine Funktion auf dem Server auf, als wäre sie eine lokale Methode, fernab von HTTP-Standards. Google hat dafür gRPC entwickelt. Es nutzt HTTP/2 und protobuf (ein binäres Datenformat). Wo REST-APIs gigantische Mülleimer von menschenlesbarem Text (JSON) durch die Kupferleitung schieben (viel Overhead), schiebt gRPC ultrakompakte binäre Nullen und Einsen extrem schnell zwischen Microservices hin und her.
5. Prüfen
Warum kann ich nicht einfach direkt auf die Datenbank von z. B. Google zugreifen, sondern muss die API nutzen?
Sicherheit & Kontrolle. Die API (Kellner) prüft, ob du das darfst. Niemand lässt Fremde direkt in die Küche (Datenbank). Zudem abstrahiert die API die technische Komplexität der Datenbank.Was ist der Unterschied zwischen einem Request und einer Response?
Request = Die Anfrage vom Client an den Server (inkl. Methode, Header, Body). Response = Die Antwort vom Server (inkl. Status Code und Daten).Was passiert, wenn du das Rate Limit einer API überschreitest?
Der Server blockiert die Anfrage mit dem Status Code429 Too Many Requests. Du musst warten, bis dein "Budget" wieder aufgefüllt ist.
Zusammenfassung
- Eine API (Application Programming Interface) ist der universelle Vermittler zwischen verschiedenen Software-Systemen. Man kann es sich – ganz klassisch – wie einen Kellner in einem Restaurant vorstellen, aber schauen wir uns das Detail genauer an:
- Wenn du Tools wie n8n, Zapier oder Make nutzt, bist du im Grunde ein "API-Manager". Du verknüpfst verschiedene Dienste miteinander.
- Hier gehen wir tief in die Mechanik. Eine moderne Web-API (meist RESTful) folgt strengen Regeln des HTTP-Protokolls. Wenn du als Developer oder Automation Engineer arbeitest, musst du verstehen, was "unter der Haube" passiert.
Optionale Praxisaufgabe
- Erkläre API in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem API relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Endpoint S1
Überblick: Wenn du in ein Restaurant gehst, gibt es verschiedene Schalter. Einen für "Bestellung aufgeben". Einen für "Essen abholen". Einen für "Bezahlen". Eine API (Kellner) im Internet funktioniert genauso. Die Schalter sind die Endpoints. Es sind spezifische URLs, an die du eine Nachricht schickst, um etwas Bestimmtes zu tun. https://api.shop.de/users - Liste aller User holen. https://api.shop.de/buy - Kaufen. Jeder Endpoint hat eine klare Aufgabe.
Einfach erklärt: Ein Endpoint besteht aus: 1. Methode: GET, POST, PUT, DELETE (Das Verb). 2. Pfad: /api/v1/products/123 (Das Nomen). In Express.js (Node Backend): javascript app.get('/products/:id', (req, res) = { // Endpoint Definition const id = req.params.id; // ... Hole Produkt aus DB }); Der Client ruft auf: GET /products/42.
Query Params vs. Path Params?
Path (/users/5) identifiziert eine eindeutige Ressource. Query (/users?role=admin) filtert oder sortiert. Wenn du eine Ressource meinst, nutze Path.Healthcheck Endpoint?
/healthoder/status. Ein spezieller Endpoint, der200 OKzurückgibt, wenn die DB Verbindung steht. Loadbalancer pingen diesen Endpoint alle 5 Sekunden, um zu wissen, ob der Server noch lebt.Was ist ein "Public Endpoint"?
Ein Endpoint ohne Authentifizierung (z. B. Login, Landing Page Dat). Alles hinter/admin/...sind "Protected Endpoints" (brauchen Token).
Schritt 10 / 65
REST API
Ressourcen, Endpunkte und Statuscodes strukturieren.
S1
Schritt 10 / 65
REST API
Ressourcen, Endpunkte und Statuscodes strukturieren.
1. Verstehen
Wie reden Apps miteinander? REST ist der Standard-Knigge für das Web. Es nutzt das normale HTTP Protokoll.
- Ich will Daten haben:
GET /users - Ich will Daten speichern:
POST /users - Ich will ändern:
PUT /users/1 - Ich will löschen:
DELETE /users/1Alles dreht sich um Ressourcen (Nomen wie User, Product, Order). Die Antwort ist meistens JSON. Es ist "stateless" (der Server merkt sich nichts zwischen zwei Requests, du musst immer deinen Ausweis/Token mitschicken).
Merksatz: Ein Architekturstil für verteilte Systeme, der Ressourcen über standardisierte HTTP-Methoden (GET, POST, PUT, DELETE) verfügbar macht und zustandslos (stateless) arbeitet.
2. Anwenden
Postman oder curl sind deine Tools.
Request:
GET /api/v1/products/42 HTTP/1.1
Authorization: Bearer mytoken
Accept: application/json
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 42, "name": "Kaffee", "price": 2.50 }
Status Codes sind wichtig: 200 (OK), 201 (Created), 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error).
Praxisroutine
In der Praxis lernst du REST API, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. HATEOAS (Hypermedia)
Das "H" in REST, das alle ignorieren. "Hypermedia As The Engine Of Application State". Die API sollte nicht nur Daten liefern, sondern auch Links ("Was kann ich als nächstes tun?").
{
"id": 42,
"balance": 0,
"_links": {
"deposit": "/users/42/deposit",
"close_account": "/users/42/close"
}
}
Damit muss der Client die URLs nicht hardcoden. Er navigiert wie ein Mensch im Browser.
2. Idempotenz
Ein Idempotenter Request kann 10x gesendet werden, und das Ergebnis ist gleich wie beim 1. Mal.
GET: Ja (Lesen ändert nichts).PUT: Ja ("Setze Name=Hans". Auch beim 10. Mal ist Name=Hans).DELETE: Ja (Wenn weg, dann weg. 2. Löschen gibt 404, ändert aber nichts).POST: Nein! ("Erstelle Bestellung". 10x POST = 10 Bestellungen!). Lösung für instabile Netze: Idempotency Keys. Client sendetX-Idempotency-Key: uuid-123. Server merkt sich: "UUID 123 habe ich schon bearbeitet", und ignoriert das Duplikat.
3. Versionierung
APIs ändern sich. Wie brichst du alte Apps nicht?
- URL Versioning:
/api/v1/users(Am beliebtesten). - Header Versioning:
Accept: application/vnd.myapi.v1+json. (Sauberer im REST-Sinne, aber schwerer zu testen). Niemals Breaking Changes ohne neue Version!
4. Vertiefen
1. N+1 Problem (Underfetching in SQL)
Der Klassiker in REST: Du fragst den /api/users Endpoint an und bekommst 100 User als JSON-Array zurück.
Nun brauchst du zu jedem User seine Profildaten (Wohnort). Die klassische REST-Abstraktion (jeder Resource-Typ hat seinen eigenen Endpunkt) zwingt das Frontend nun dazu, asynchron 100 individuelle GET /api/users/1/profile bis /api/users/100/profile Requests auf das Backend abzufeuern.
Der Browser implodiert wegen Connection Overhead. Das Backend führt hinten 100 einzelne SQL Selects durchstatt eines sauberen LEFT JOIN (Das berüchtigte N+1 Query Problem).
Die Rettung in pragmatischen (aber "unreinen") REST APIs sind Query-Parameter-Expansions: GET /users?embed=profile. Dies bricht die akademische Ressourcen-Regel des strikten Resource-Routings zugunsten der Performance (Graph-Ansatz) radikal auf.
2. ETag und Conditional Requests (Bandbreiten-Kollaps)
Gigantische JSON Payloads ("Die Konfig der gesamten App", 2 Megabyte) oft abzurufen, grillt den Mobil-Tarif. Gutes REST Caching funktioniert nicht über pure Zeit-Abläufe (Expiration), sondern bedingt (Conditional).
Der Server sendet beim ersten GET den 2MB Body plus einen ETag-Header (z.B. den MD5-Hash des JSONs W/"0815").
Beim Neustart der Smartphone-App sendet diese später den Cache-Header If-None-Match: "0815".
Die Backend-DB checkt in Nanosekunden: Hat sich die Konfig intern seit "0815" verändert? Nein.
Anstatt 2MB Text durch das Kupferkabel zu quetschen, sendet der REST API Node einen nackten HTTP Status 304 Not Modified zurück (Header ohne Body). Das spart unglaubliche Netzwerkressourcen im Edge Node.
3. API Contract Testing vs Spec-Drift (Swagger/OpenAPI)
Das Frontend (React) wird ausgeliefert gegen REST API V1.
3 Wochen später fügt ein Backend-Entwickler "kurz" ein Enum-Feld (status=ARCHIVED) hinzu und pushed. Die React-App crasht live.
Die API Spezifikation (Swagger Docs) und die physikalische PHP/Java-Implementierung sind "gedriftet" (Spec-Drift).
Profi-Lösung: Consumer-Driven Contract Testing (Pact / Dredd).
Das API-Design wird in YAML geschrieben (OpenAPI 3.0), noch bevor ein Entwickler gecoded hat ("Design First"). In der CI/CD Pipeline validiert ein Proxy-Robot den Live-Code im Docker-Container gegen das YAML-Regelwerk. Weicht der JSON Response-Typ (Feld Name fehlend) von der Specs-Verfassung ab, scheitert der Deployment Build automatisch tiefrot. Eine Garantie dafür, dass die Clients sich nicht verschlucken.
5. Prüfen
REST vs GraphQL?
REST: Viele Endpoints (/users, /posts, /comments). Problem: Overfetching (zu viele Daten) oder Underfetching (zu viele Requests). GraphQL: Ein Endpoint (/graphql). Client sagt genau, was er will ("Gib mir User Name und seine letzten 3 Posts"). Flexibler, aber schwerer zu cachen.Status vs Body?
Gute API:HTTP 404wenn User nicht gefunden. Schlechte API:HTTP 200und im Body{ "error": "Not Found" }. Das verwirrt Monitoring-Tools, die nur auf Status-Codes schauen.Richardson Maturity Model?
Level 0: "XML über HTTP" (SOAP style). Level 1: Ressourcen (/users). Level 2: HTTP Verben (GET/POST). Level 3: HATEOAS (Links). 99% der "REST APIs" sind Level 2.
Zusammenfassung
- Wie reden Apps miteinander? REST ist der Standard-Knigge für das Web. Es nutzt das normale HTTP Protokoll. Ich will Daten haben: GET /users Ich will Daten speichern: POST /users Ich will ändern: PUT /users/1 Ich will löschen: DELETE /users/1 Alles dreht sich...
- Postman oder curl sind deine Tools. Request: http GET /api/v1/products/42 HTTP/1.1 Authorization: Bearer mytoken Accept: application/json Response: http HTTP/1.1 200 OK Content-Type: application/json
Optionale Praxisaufgabe
- Erkläre REST API in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem REST API relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Endpoint S1
Überblick: Wenn du in ein Restaurant gehst, gibt es verschiedene Schalter. Einen für "Bestellung aufgeben". Einen für "Essen abholen". Einen für "Bezahlen". Eine API (Kellner) im Internet funktioniert genauso. Die Schalter sind die Endpoints. Es sind spezifische URLs, an die du eine Nachricht schickst, um etwas Bestimmtes zu tun. https://api.shop.de/users - Liste aller User holen. https://api.shop.de/buy - Kaufen. Jeder Endpoint hat eine klare Aufgabe.
Einfach erklärt: Ein Endpoint besteht aus: 1. Methode: GET, POST, PUT, DELETE (Das Verb). 2. Pfad: /api/v1/products/123 (Das Nomen). In Express.js (Node Backend): javascript app.get('/products/:id', (req, res) = { // Endpoint Definition const id = req.params.id; // ... Hole Produkt aus DB }); Der Client ruft auf: GET /products/42.
Query Params vs. Path Params?
Path (/users/5) identifiziert eine eindeutige Ressource. Query (/users?role=admin) filtert oder sortiert. Wenn du eine Ressource meinst, nutze Path.Healthcheck Endpoint?
/healthoder/status. Ein spezieller Endpoint, der200 OKzurückgibt, wenn die DB Verbindung steht. Loadbalancer pingen diesen Endpoint alle 5 Sekunden, um zu wissen, ob der Server noch lebt.Was ist ein "Public Endpoint"?
Ein Endpoint ohne Authentifizierung (z. B. Login, Landing Page Dat). Alles hinter/admin/...sind "Protected Endpoints" (brauchen Token).
SOAP (Simple Object Access Protocol) S2
Überblick: Der strenge Großvater von REST/JSON. Genutzt in Banken, Versicherungen und alten Enterprise-Systemen. Es basiert auf XML. Es ist extrem strikt. Es gibt einen Vertrag (WSDL - Web Services Description Language). Darin steht exakt: "Funktion getMoneys braucht IBAN (String, 22 Zeichen) und liefert Amount (Decimal)." Wenn du einen Fehler machst, explodiert es sofort. Vorteil: Klares Regelwerk. Tools können den Code automatisch generieren. Nachteil: Komplex, langsam und die Nachrichten sind riesig ("XML Hölle").
Einfach erklärt: Eine SOAP-Nachricht ist wie ein Brief mit Umschlag (Envelope). xml (Security Tokens) Apple Niemand schreibt das von Hand. Tools (wie SoapUI oder IDEs) lesen die WSDL und bauen den Client-Code für dich.
Warum hassen es alle?
Zu viel Overhead. Für eine einfache Zahl "5" sendet man 500 Zeichen XML. Parsing kostet viel CPU. Debugging ist schwer.Wann benutzen?
Nur wenn du musst (Legacy Systeme). Oder wenn du komplexe formale Verträge brauchst (Behörden-APIs, Finanzwesen). Für normale Web-Apps: Nimm REST oder GraphQL.UDDI?
Das "Telefonbuch" für SOAP Services. Sollte ein zentrales Verzeichnis aller Services im Internet sein. Ist grandios gescheitert und tot.
Schritt 11 / 65
HTTP Method
GET, POST, PUT und DELETE richtig einsetzen.
S1
Schritt 11 / 65
HTTP Method
GET, POST, PUT und DELETE richtig einsetzen.
1. Verstehen
Wenn du im Browser surfst, "redest" du HTTP. Jeder Satz beginnt mit einem Verb (Methode). Es sagt dem Server, was du tun willst.
- GET: "Gib mir!" (Webseite anzeigen).
- POST: "Nimm das!" (Formular absenden, Foto hochladen).
- DELETE: "Lösch das!" (Account löschen). Das sind die Befehle des Webs.
Merksatz: Das Verb in einer HTTP-Anfrage, das die gewünschte Aktion auf der Ressource (URL) definiert (z. B. GET zum Lesen, POST zum Erstellen).
Lernbruecke für Anfänger
Wenn du bei HTTP Method ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: GET, POST, PUT und DELETE richtig einsetzen. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Die wichtigsten für REST APIs:
- GET: Lesen. Sicher (ändert nichts am Server).
- POST: Erstellen (Create). Nicht idempotent (2x senden = 2x erstellen).
- PUT: Ersetzen (Update). Überschreibt das ganze Objekt.
- PATCH: Ändern (Update). Ändert nur Teile (z. B. nur Email ändern).
- DELETE: Löschen.
Browser nutzen fast nur GET und POST. Apps (Mobile, SPA) nutzen alle.
Praxisroutine
In der Praxis lernst du HTTP Method, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Safe vs. Idempotent
Das ist Prüfungsstoff.
- Safe Methods (GET, HEAD, OPTIONS): Dürfen nichts ändern (Read-Only). Ein Crawler (Google Bot) darf sie millionenfach aufrufen, ohne dass du was kaufst.
- Idempotent Methods (PUT, DELETE): Wenn ich sie 10x sende, ist das Ergebnis das gleiche wie beim 1. Mal.
DELETE /users/1-> User weg. NochmalDELETE /users/1-> User immer noch weg (404). Zustand ist gleich geblieben. - POST ist nicht idempotent! (Doppelte Buchung möglich).
2. OPTIONS & CORS
Ein unsichtbarer Held.
Bevor dein Browser einen Cross-Origin Request (von a.com nach api.b.com) mit PUT sendet, macht er automatisch einen Preflight Request.
OPTIONS /api/users.
Server antwortet: Allow: GET, POST, PUT.
Erst dann schickt der Browser das echte PUT.
Ohne OPTIONS kein modernes Web mit React/Angular.
3. HEAD
Wie GET, aber der Server sendet nur Header, keinen Body (Inhalt). Nützlich für:
- "Existiert die Datei?" (Check Links).
- "Wie groß ist der Download?" (
Content-Length). - "Hat sich was geändert?" (
Last-Modified). Spart enorm Bandbreite bei Sync-Clients.
4. Vertiefen
1. Die Semantik von PUT vs PATCH (Im Detail)
Das RFC für PUT verlangt strikt eine komplette Repräsentation der Ziel-Ressource.
Sendest du PUT /user/1 mit {"name": "Max"}, aber der User hat in der DB noch {"age": 30}, muss der Backend-Developer (laut HTTP/REST Spezifikation) das Alter auf NULL setzen, weil es im Request fehlte. PUT ist ein Replacement.
PATCH hingegen verlangt historisch ein Diff-Dokument. Der Content-Type application/json-patch+json (RFC 6902) erwartet strukturierte Operationen: [ { "op": "replace", "path": "/name", "value": "Max" } ]. In der Praxis ignorieren 90% der Web-Entwickler das RFC und schicken per PATCH einfach rudimentäres JSON, das Backend merded es. So hat sich der pragmatische "Merge-Patch" (RFC 7396) eingebürgert.
2. Idempotency Keys (Bei POST)
Wenn POST nicht idempotent ist (es erstellt Dinge), was passiert bei einer schlechten Handyverbindung?
Der User klickt "Bezahlen" (POST). Backend bucht 50€. Die Antwort (200 OK) geht im Mobilfunkmast verloren. Das UI des Users lädt ewig, er drückt noch mal "Bezahlen". Wieder 50€ weg.
Gute APIs (wie Stripe) erzwingen Idempotency Keys. Der Client generiert eine UUID (Idempotency-Key: a4c9...) und klebt sie als Header an das POST. Der Server bookt die 50€ ein, und merkt in Redis: "Key a4c9 hat bereits 200 OK generiert". Kommt das selbe POST vom ungeduldigen User eine Sekunde später noch mal, macht der Server nichts, sondern spuckt aus dem Cache die alte Erfolgsmeldung 200 OK (Replay).
3. WebDAV Methoden (Die vergessenen Verben)
Die Welt denkt, HTTP hätte nur 5 Verben.
Das Protokoll ist aber absolut erweiterbar. WebDAV (eine HTTP-Zusatzspezifikation, auf welcher z.B. Nextcloud oder CalDAV basieren) erfand ein halbes Dutzend neue Methoden.
PROPFIND holt Datei-Metadaten in XML. COPY und MOVE machen genau das, was der Name im Filesystem sagt. LOCK sperrt die Datei für andere Editoren. Ein reiner REST Purist lacht darüber, aber WebDAV macht HTTP zum vollwertigen Netzlaufwerk.
5. Prüfen
Was ist
TRACE?Eine Debugging-Methode ("Echo"). Der Server sendet genau das zurück, was er empfangen hat. Gefährlich wegen "Cross-Site Tracing" (XST) Attacken (Cookies klauen). Sollte auf Webservern deaktiviert sein.Unterschied PUT vs PATCH?
PUT erwartet das komplette neue Objekt. Wenn du nur Feld "Name" sendest, werden alle anderen Felder (Email, Adresse) gelöscht (auf null gesetzt)! PATCH ändert nur das gesendete Feld (Merge). PATCH ist sicherer für Teila-Updates.Kann GET einen Body haben?
Technisch erlaubt der RFC es, aber viele Server/Caches ignorieren ihn oder werfen Fehler. ElasticSearch nutzt GET mit Body für Queries. Das ist umstritten. Besser: POST nutzen (POST /search).
Zusammenfassung
- Wenn du im Browser surfst, "redest" du HTTP. Jeder Satz beginnt mit einem Verb (Methode). Es sagt dem Server, was du tun willst. GET: "Gib mir!" (Webseite anzeigen). POST: "Nimm das!" (Formular absenden, Foto hochladen). DELETE: "Lösch das!" (Account...
- Die wichtigsten für REST APIs: 1. GET: Lesen. Sicher (ändert nichts am Server). 2. POST: Erstellen (Create). Nicht idempotent (2x senden = 2x erstellen). 3. PUT: Ersetzen (Update). Überschreibt das ganze Objekt. 4. PATCH: Ändern (Update). Ändert nur Teile (z....
Optionale Praxisaufgabe
- Erkläre HTTP Method in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem HTTP Method relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Endpoint S1
Überblick: Wenn du in ein Restaurant gehst, gibt es verschiedene Schalter. Einen für "Bestellung aufgeben". Einen für "Essen abholen". Einen für "Bezahlen". Eine API (Kellner) im Internet funktioniert genauso. Die Schalter sind die Endpoints. Es sind spezifische URLs, an die du eine Nachricht schickst, um etwas Bestimmtes zu tun. https://api.shop.de/users - Liste aller User holen. https://api.shop.de/buy - Kaufen. Jeder Endpoint hat eine klare Aufgabe.
Einfach erklärt: Ein Endpoint besteht aus: 1. Methode: GET, POST, PUT, DELETE (Das Verb). 2. Pfad: /api/v1/products/123 (Das Nomen). In Express.js (Node Backend): javascript app.get('/products/:id', (req, res) = { // Endpoint Definition const id = req.params.id; // ... Hole Produkt aus DB }); Der Client ruft auf: GET /products/42.
Query Params vs. Path Params?
Path (/users/5) identifiziert eine eindeutige Ressource. Query (/users?role=admin) filtert oder sortiert. Wenn du eine Ressource meinst, nutze Path.Healthcheck Endpoint?
/healthoder/status. Ein spezieller Endpoint, der200 OKzurückgibt, wenn die DB Verbindung steht. Loadbalancer pingen diesen Endpoint alle 5 Sekunden, um zu wissen, ob der Server noch lebt.Was ist ein "Public Endpoint"?
Ein Endpoint ohne Authentifizierung (z. B. Login, Landing Page Dat). Alles hinter/admin/...sind "Protected Endpoints" (brauchen Token).
Idempotency S3
Überblick: Ein kompliziertes Wort für ein einfaches Konzept. Idempotenz bedeutet: Es ist egal, wie oft du den Knopf drückst, das Ergebnis ist das gleiche wie beim ersten Mal. Beispiel Fahrstuhlknopf: Egal ob du 1x oder 20x drückst, der Fahrstuhl kommt einfach nur. Er kommt nicht "20x schneller" oder "20 Fahrstühle". Das ist idempotent. Gegenbeispiel Online-Shopping "Kaufen": Wenn du 2x klickst (weil Internet langsam ist), kaufst du 2 Toaster? Das wäre nicht idempotent (und sehr schlecht). In der IT müssen wir Systeme so bauen, dass sie Wiederholungen (Retries) verkraften, ohne Chaos anzurichten.
Einfach erklärt: Bei HTTP Methoden: GET ist idempotent (Lesen ändert nix). PUT ist idempotent (User A überschreiben - User A überschreiben - Inhalt gleich). DELETE ist idempotent (Löschen - Löschen - Weg ist weg). POST ist NICHT idempotent (Neuer User - Neuer User - 2 User).
Warum Ansible?
Ansible liebt Idempotenz. Ein Playbook ("Installiere Nginx") kann ich 100x aufrufen. Beim 1. Mal installiert es. Beim 2. bis 100. Mal sagt es "OK (Changed=0)". Normale Bash-Skripte (apt install) sind oft nicht idempotent und werfen Fehler.Ist
x = x + 1idempotent?Nein! 1x ausgeführt: x=2. 2x ausgeführt: x=3. Ergebnis ändert sich.x = 5ist idempotent. Egal wie oft, x bleibt 5.Retries ohne Idempotenz?
Tödlich. "Network Timeout" heißt nicht "nicht passiert". Es heißt "Vielleicht passiert, vielleicht nicht". Ohne Idempotenz kannst du keinen automatischen Retry machen, weil du riskierst, Daten zu korrumpieren.
Schritt 12 / 65
Status Code (HTTP)
Antworten von Servern interpretieren.
S1
Schritt 12 / 65
Status Code (HTTP)
Antworten von Servern interpretieren.
1. Verstehen
Wenn du im Restaurant bestellst, sagt der Kellner etwas.
- "Kommt sofort!" (200 OK)
- "Haben wir nicht." (404 Not Found)
- "Die Küche brennt!" (500 Internal Server Error) HTTP Status Codes sind diese Kurznachrichten mit 3 Ziffern. Sie sagen dem Browser (oder API Client), ob der Request geklappt hat. Klassen:
- 1xx: Info (Warte mal kurz...).
- 2xx: Erfolg (Yeay!).
- 3xx: Umleitung (Woanders suchen).
- 4xx: Dein Fehler (Client).
- 5xx: Mein Fehler (Server).
Merksatz: Ein 3-stelliger numerischer Code in der HTTP-Antwort, der das Ergebnis einer Anfrage (Erfolg, Umleitung, Client-Fehler, Server-Fehler) standardisiert signalisiert.
2. Anwenden
Die wichtigsten 10:
- 200 OK: Alles gut.
- 201 Created: Ressource angelegt (nach POST).
- 204 No Content: Erfolg, aber nix zu sagen (nach DELETE).
- 301 Moved Permanently: Alte URL ist tot, nutze die neue (gut für SEO).
- 302 Found: Temporär woanders.
- 400 Bad Request: Du hast Quatsch gesendet (JSON kaputt).
- 401 Unauthorized: Wer bist du? (Login fehlt).
- 403 Forbidden: Ich kenne dich, aber du darfst hier nicht rein.
- 404 Not Found: Gibt's nicht.
- 500 Internal Server Error: Der Code ist gecrasht (NullPointerException).
- 503 Service Unavailable: Server ist überlastet oder rebootet gerade.
- 504 Gateway Timeout: Datenbank hat zu lange gebraucht.
3. Technisch einordnen
1. 401 vs 403
Verwechslungsgefahr.
- 401: Authentication failed. "Bitte logge dich ein." Header
WWW-Authenticatemuss dabei sein. (Der Türsteher lässt dich nicht rein, weil du keinen Ausweis hast). - 403: Authorization failed. "Du bist eingeloggt, aber hast keine Admin-Rechte." (Der Türsteher lässt dich rein, aber nicht in den VIP-Bereich). Ein erneuter Login hilft hier nicht.
2. Teapot (418)
Ein April-Scherz der IETF (RFC 2324).
"Hyper Text Coffee Pot Control Protocol".
Server antwortet 418 I'm a teapot: "Ich kann keinen Kaffee kochen, ich bin eine Teekanne."
Google hat echte Teapots im Googleplex, die darauf reagieren. Zeigt, dass Status Codes erweiterbar sind.
3. Monitoring & SLOs
SREs (Site Reliability Engineers) definieren Alerts auf Basis von Codes.
- 2xx/3xx Rate: Traffic.
- 4xx Rate: User-Fehler (steigt oft nach API Change -> Clients sind inkompatibel).
- 5xx Rate: Alarm! PagerDuty ruf an. Server brennen. SLO (Service Level Objective): "99.9% aller Requests müssen fehlerfrei (nicht 5xx) sein in 30 Tagen."
4. Vertiefen
1. 103 Early Hints (Performance-Boost)
Ein relativ neuer Status Code (RFC 8297). Normalerweise wartet der Browser, bis der Server die komplette HTML-Seite generiert hat (Status 200), bevor er anfängt, CSS oder JS zu laden. Bei 103 Early Hints schickt der Server sofort die Header mit den Links zu den Ressourcen raus, noch während er im Hintergrund an der schweren SQL-Abfrage für das HTML bastelt. Der Browser kann so schon mal anfangen zu laden, während der Server noch "denkt". Das verbessert die Ladezeit (LCP) massiv.
2. 422 Unprocessable Entity (Die API-Wahl)
In modernen REST APIs (besonders im Zusammenspiel mit Frameworks wie Laravel oder Rails) ist 422 der Standard für Validierungsfehler. Unterschied zu 400 (Bad Request):
- 400: Das Paket ist kaputt (JSON fehlt, Syntaxfehler). Der Server kann es gar nicht lesen.
- 422: Das JSON ist syntaktisch korrekt, aber die Daten machen keinen Sinn (z.B. "E-Mail-Adresse fehlt" oder "Alter ist negativ"). Es ist semantisch präziser als ein allgemeines 400, da es besagt: "Ich hab dich verstanden, aber ich kann mit diesem Inhalt nicht arbeiten."
3. Fehler-Diagnose via Custom Headers
Status Codes sind oft zu grob. "500" heißt nur "Kaputt".
Um das Debugging in großen Systemen zu erleichtern, senden APIs oft zusammen mit dem Status Code eine Request-ID oder einen Error-Link im Header oder Body.
Standard-Vorschläge wie Problem Details for HTTP APIs (RFC 7807) definieren ein festes JSON-Format für Fehlermeldungen:
{
"type": "https://example.com/probs/out-of-credit",
"title": "You do not have enough credit.",
"status": 403,
"detail": "Your current balance is 30, but that costs 50.",
"instance": "/account/12345/msgs/abc"
}
Das erlaubt es dem Frontend, dem User eine hilfreiche Nachricht zu zeigen ("Guthaben aufladen"), statt nur ein generisches "Fehler 403".
5. Prüfen
Sind 3xx Fehler?
Nein. Der Browser folgt ihnen automatisch (Redirect). Der User merkt es nicht (außer es ist ein Loop "Too many redirects").Kann ich eigene Codes erfinden?
Technisch ja (Nginx nutzt 444 für "Connection Close without Response"). Aber Standard-Clients verstehen sie nicht ("Unknown Error"). Bleib bei den RFC Codes.Cloudflare Fehler 520-527?
Cloudflare hat eigene 5xx Codes erfunden, um genau zu sagen, warum der Origin Server kaputt ist (z. B. 522 Connection Timed Out, 525 SSL Handshake Failed). Das hilft beim Debuggen von CDNs.
Zusammenfassung
- Wenn du im Restaurant bestellst, sagt der Kellner etwas. "Kommt sofort!" (200 OK) "Haben wir nicht." (404 Not Found) "Die Küche brennt!" (500 Internal Server Error) HTTP Status Codes sind diese Kurznachrichten mit 3 Ziffern. Sie sagen dem Browser (oder API...
- Die wichtigsten 10: 200 OK: Alles gut. 201 Created: Ressource angelegt (nach POST). 204 No Content: Erfolg, aber nix zu sagen (nach DELETE). 301 Moved Permanently: Alte URL ist tot, nutze die neue (gut für SEO). 302 Found: Temporär woanders. 400 Bad Request:...
Optionale Praxisaufgabe
- Erkläre Status Code (HTTP) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Status Code (HTTP) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Debugging S1
Überblick: Debugging ist die Jagd nach Fehlern (Bugs) im Computerprogramm. Der Begriff kommt von einem echten "Bug" (Motte), die 1947 in einem alten Computer einen Kurzschluss verursachte. Wenn ein Programm abstürzt oder komische Dinge tut, muss der Programmierer den Detektiv spielen: 1. Was ist passiert? 2. Wo im Code steht der Fehler? 3. Wie repariere ich ihn?
Einfach erklärt: Wie debuggt man? 1. Print-Statements: Der Anfänger-Weg. Man schreibt überall print("Ich bin hier") in den Code, um zu sehen, wie weit das Programm kommt. 2. Fehlermeldungen lesen: Der Computer sagt oft genau, was falsch ist ("Error in Line 55: Division by Zero"). Viele lesen das leider nicht. 3. Debugger nutzen: Profi-Tools (in der IDE), mit denen man das Programm Schritt für Schritt (Zeile für Zeile) ablaufen lassen kann. Man kann die Zeit anhalten und in die Variablen hineinschauen ("Aha, X ist hier 0, deshalb knallt es!").
Warum heißt es "Bug"?
Weil Grace Hopper 1947 eine echte Motte in einem Relais des Mark II Computers fand. Sie klebte sie ins Logbuch mit der Notiz "First actual case of bug being found".Was ist besser: Print-Statements oder ein echter Debugger?
Debugger sind viel mächtiger, weil man den Zustand prüfen kann, ohne den Code zu ändern. Aber für schnelle Checks sind Prints oft einfacher.Was hilft, wenn man den Fehler absolut nicht findet?
Pause machen. Schlafen. Oder der Gummiente das Problem erklären. Tunnelblick ist der Feind des Debuggings.
Schritt 13 / 65
JSON (JavaScript Object Notation)
Daten zwischen Client und Backend austauschen.
S1
Schritt 13 / 65
JSON (JavaScript Object Notation)
Daten zwischen Client und Backend austauschen.
1. Verstehen
Sprache des Internets. Wenn ein Server (Python) mit einem Browser (JavaScript) redet, nutzen sie JSON. Es ist Text, den Menschen lesen können.
{
"name": "Max",
"alter": 25,
"hobbys": ["Fußball", "Coden"]
}
Es sieht aus wie JavaScript-Code, ist aber mittlerweile überall Standard (auch in Java, C#, Go). Es hat das alte, komplizierte XML fast vollständig verdrängt.
Merksatz: Ein leichtgewichtiges, textbasiertes Datenaustauschformat, das einfach für Menschen zu lesen und für Maschinen zu parsen ist, basierend auf einer Teilmenge der JavaScript-Syntax.
2. Anwenden
JavaScript:
JSON.stringify(obj) -> Macht aus Objekt einen String (zum Senden).
JSON.parse(string) -> Macht aus String ein Objekt (zum Benutzen).
Python:
import json
json.loads(string)
json.dumps(obj)
Beachte: Keys müssen immer in doppelten Anführungszeichen stehen ("name"). Einfache ('name') sind verboten (Invalid JSON).
Praxisroutine
In der Praxis lernst du JSON (JavaScript Object Notation), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Datentypen & Limitierungen
JSON kennt nur: String, Number, Boolean, Array, Object, null.
Es kennt kein Datum (Date).
Man muss Datum als String senden ("2023-10-27T10:00:00Z") und manuell parsen.
Es kennt keine Kommentare. (// ist verboten). Das nervt bei Konfigurationsdateien.
Es kennt keine Funktionen.
2. JSON Lines (NDJSON)
Normale JSON-Dateien müssen ein großes Objekt sein. Bei riesigen Daten (Logfiles, 10GB) ist das blöd (man muss alles in den RAM laden). Lösung: JSONL (Newqline Delimited JSON). Jede Zeile ist ein valides JSON-Objekt. Man kann es Zeile für Zeile streamen und verarbeiten.
3. Sicherheit (JSON Hijacking)
Früher (vor ES5) konnte man JSON-Arrays von fremden Seiten klauen, indem man den Array-Konstruktor überschrieb.
Heute gefixt.
Aber: JSON.parse() ist sicher. eval() ist tödlich.
Niemals eval(jsonString) nutzen!
4. Vertiefen
1. Serialisierung und das 64-bit Integer Problem (BigInt)
Die Parsing-Engine deines Browsers konvertiert reine JSON-Strings per JSON.parse() in JS-Variablen in C++.
Der fatale Architektur-Fehler: JavaScript (nach IEEE 754) kennt keine echten Integer. Jede Zahl ist ein 64-Bit Float, welches ab ca. 9 Millionen Billionen (Number.MAX_SAFE_INTEGER, entspr. 53-Bit Präzision) die Genauigkeit verliert.
Sendet z.B. eine Twitter-API rohe UUIDs oder Transaction-IDs einer Blockchain als Integers ({"id": 1044458572186984448}), wird die JS-Parsing-Engine dies beim Import unwiderruflich leise in 1044458572186984400 runden. ID zerstört. Backend-Entwickler müssen große Integers in ihrer API deshalb präventiv immer als String versenden ("id": "1044458..."), wenn der Client das Web ist.
2. JSON Schema Validierung
JSON ist typenlos und unstrukturiert. Erwartet das Backend ein "Alter" (Number) und der Client sendet versehentlich "Alter": "zwanzig", crasht der Datenbank-Driver oft schmutzig ab.
Um das typsichere Validieren von Enterprise-XML zu imitieren, existiert JSON Schema.
Es ist eine beschreibendes JSON-Metadokument: {"type": "object", "properties": {"alter": {"type": "integer", "minimum": 0}}}. C++ Validatoren prüfen den ankommenden API-Payload brutal schnell gegen dieses Schema. Wenn der Check fehlschlägt, feuert das Gateway einen HTTP 400 Bad Request, bevor der fehlerhafte Payload den Server-Hauptcode (Business-Logik) auch nur erahnen kann.
3. Binary JSON (BSON) und MessagePack
JSON als reiner Text (UTF-8 Bytes) hat massiven Parsing-Overhead. Wenn eine Kamera Sensor-Arrays sendet (Millionen Pixelzahlen), liest der CPU-Parser für "5" "2" "," jedes C-Char ein.
High-Performance Systeme in IoT oder DBs (z.B. MongoDB BSON) verpacken JSON als Binärbaum. MessagePack komprimiert {"compact": true} in winzige Bytes 81 a7... durch Prefix-Deklarierungen ("Die nächsten 10 Bytes sind ein Float"). Der Client kann Memory-Pfeile zielen und decodiert rasend schnell. Im Browser Web-Performance-Segment setzt sich alternativ Google's Protobuf durch.
5. Prüfen
BSON?
Binary JSON. Genutzt von MongoDB. Kann mehr Typen (Date, Binary Data) und ist effizienter zu durchsuchen (Length Prefixes), aber nicht menschenlesbar.Trailing Comma?
{"a": 1,}. In JS erlaubt, in JSON verboten! Führt oft zu Fehlern.JSON vs XML?
JSON: Kleiner, schneller zu parsen, passt perfekt zu JS. XML: Mächtiger (Namespaces, Validierung via XSD), aber verbos und langsam. Enterprise liebt XML, Web liebt JSON.
Zusammenfassung
- Sprache des Internets. Wenn ein Server (Python) mit einem Browser (JavaScript) redet, nutzen sie JSON. Es ist Text, den Menschen lesen können. json { "name": "Max", "alter": 25, "hobbys": ["Fußball", "Coden"] } Es sieht aus wie JavaScript-Code, ist aber...
- JavaScript: JSON.stringify(obj) - Macht aus Objekt einen String (zum Senden). JSON.parse(string) - Macht aus String ein Objekt (zum Benutzen).
Optionale Praxisaufgabe
- Erkläre JSON (JavaScript Object Notation) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem JSON (JavaScript Object Notation) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
XML S1
Überblick: XML ist eine Sprache, um Daten so aufzuschreiben, dass sowohl Menschen als auch Maschinen sie lesen können. Es sieht fast aus wie HTML (mit spitzen Klammern ), aber du darfst die Tags selbst erfinden. In HTML gibt es nur oder . In XML kannst du schreiben: BMWRot Es ist wie ein digitaler Packzettel, der genau beschreibt, was im Paket ist.
Einfach erklärt: Früher (2000er) war XML der König des Datenaustauschs. Heute ist es oft durch JSON ersetzt worden (weil JSON einfacher und kürzer ist). Aber XML lebt noch überall: 1. Konfigurationsdateien: Viele Server speichern ihre Einstellungen in XML. 2. Office-Dateien: Eine .docx Datei ist eigentlich ein ZIP-Archiv voller XML-Dateien. (Benenne mal eine Word-Datei in .zip um und öffne sie!). 3. Sitemaps: Google liest sitemap.xml, um zu wissen, welche Seiten deine Webseite hat.
Was ist besser: XML oder JSON?
Für Web-Apps heute fast immer JSON (kleiner, schneller für JavaScript). XML ist besser für komplexe Dokumente mit strengen Regeln (Banken, Versicherungen).Was haben HTML und XML gemeinsam?
Beide sind "Markup Languages" (Auszeichnungssprachen) und basieren auf Tags. Aber HTML ist für Darstellung (Aussehen), XML für Daten (Inhalt).Warum sind Word-Dateien eigentlich XML?
Damit man sie auch ohne Word öffnen und lesen kann. Das "Open XML Format" (docx, xlsx) ist ein offener Standard, damit deine Daten nicht in einem geheimen Format gefangen sind.
YAML (YAML Ain't Markup Language) S1
Überblick: Computer mögen JSON (viele Klammern, schwer zu lesen). Menschen mögen Listen und Einrückungen. YAML ist ein Datenformat, das für Menschen gemacht ist. Keine geschweiften Klammern {}. Keine Anführungszeichen (meistens). Stattdessen: Einrückung (Indentation). Es wird fast überall in der modernen IT für Konfigurationen genutzt (Kubernetes, Docker Compose, Ansible, GitHub Actions).
Einfach erklärt: JSON: json { "server": { "port": 80, "admin": ["max", "moritz"] } }
Tiefer verstanden: production: <<: basesettings Erbt alles von defaults host: prod.com Sehr nützlich in CI/CD Pipelines (GitLab CI), um riesige Dateien klein zu halten.
Superset von JSON?
Ja! Jedes gültige JSON ist auch gültiges YAML. Du kannst{ "foo": "bar" }einfach in eine YAML-Datei schreiben. (Umgekehrt nicht).Kommentare?
Ja, mit#. JSON kann offiziell keine Kommentare. Das ist einer der Hauptgründe, warum Configs YAML nutzen (man kann erklären, warum eine Einstellung so ist).Sicherheitsrisiko?
Ja, in manchen Sprachen (Python/Ruby) war der Standard-YAML-Parser unsicher (yaml.load()), weil er Code ausführen konnte (Objekt-Deserialisierung). Nutze immersafe_load().
Schritt 14 / 65
Authentication
Benutzer sicher erkennen.
S1
Schritt 14 / 65
Authentication
Benutzer sicher erkennen.
1. Verstehen
Authentication ist die Frage: "Wer bist du?" Wenn du bei der Bank anrufst, fragen sie nach deinem Geburtsdatum. Das ist Authentication. Im Computer: Login mit Benutzername und Passwort. Der Computer prüft, ob du wirklich der bist, der du vorgibst zu sein.
Es ist nicht zu verwechseln mit Authorization ("Was darfst du?"). Zuerst Ausweis zeigen (Authentication), dann Schlüssel bekommen (Authorization).
Merksatz: Der Prozess, die Identität eines Benutzers oder Systems zu überprüfen (Login).
:level0
Lernbruecke: Authentication beantwortet die Frage: Wer bist du? Authorization beantwortet danach: Was darfst du?
2. Anwenden
Es gibt drei Wege, zu beweisen, wer du bist (Faktoren):
- Wissen (Etwas, das du weißt): Passwort, PIN. (Unsicher, weil es gestohlen werden kann).
- Besitz (Etwas, das du hast): Handy, EC-Karte, YubiKey.
- Sein (Etwas, das du bist): Fingerabdruck, Gesicht (FaceID), Iris.
Die beste Sicherheit ist eine Kombination: MFA (Multi-Factor Authentication). Also Passwort (Wissen) + Handy-Code (Besitz).
:level1
Praxisbeispiel: Ein Login prüft Passwort oder zweiten Faktor. Danach bekommt der Browser eine Session oder ein Token. Mit diesem Nachweis ruft er geschützte Backend-Endpunkte auf.
3. Technisch einordnen
1. OAuth & OpenID Connect
Wenn du dich irgendwo mit "Login mit Google" anmeldest, passiert im Hintergrund OAuth / OIDC. Die App (z. B. Spotify) sieht dein Google-Passwort nie. Google sagt Spotify nur: "Ja, das ist Max Mustermann, hier ist sein Token." Das ist viel sicherer, als jedem Forum dein Passwort zu geben.
2. Password Hashing
Gute Systeme speichern dein Passwort niemals im Klartext ("geheim123").
Sie speichern einen Hash (Kryptografischen Fingerabdruck), z. B. a3f89....
Wenn Hacker die Datenbank klauen, sehen sie nur den Hash und können das Passwort nicht direkt lesen (außer durch Brute-Force).
Für die Grundlagen dahinter fuehren Passwort, Hashing (Hash Function), Salt (Cryptography) und Brute Force Attack die wichtigsten Sicherheitsbegriffe zusammen.
:level2Technisch muss Authentication Passwörter sicher prüfen, Sessions schützen, Tokens zeitlich begrenzen und Fehlversuche kontrollieren. Die Antwort darf nicht verraten, welcher Teil der Anmeldung falsch war.
4. Vertiefen
1. State vs. Stateless (Session vs. JWT)
Nachdem du bewiesen hast, wer du bist, muss der Server sich das merken.
- Stateful (Session Cookie): Der Server speichert eine ID (z.B. in Redis):
Session 123 = Max. Er sendet dir als Cookie (HTTP Cookie) "123". Bei jedem Klick suchst der Server die ID in der Datenbank. - Stateless (JWT): Der Server signiert krypto-mathematisch ein JSON:
{"user": "Max"}und gibt dir dieses JWT. Bei jedem Klick schickst du dem Server das dicke Paket. Der Server prüft nur lokal die Signatur (Mathematik) und weiß ohne Datenbank-Zugriff "Das ist Max!". Perfekt zur Skalierung von Microservices.
2. SAML als Enterprise-Standard
Während öffentliche Apps OAuth2 oder OIDC nutzen, verlangen Großkonzerne oft SAML 2.0 (Security Assertion Markup Language). SAML basiert auf altmodischem, riesigem XML. Wenn du im Firmen-Intranet Confluence öffnest, schiebt Confluence dich sofort zum Identity Provider der Firma (Entra ID, Okta). Nach dem Login wirfst du ein signiertes XML-Paket (die "SAML Assertion") zu Confluence zurück. SAML vertauscht oft die Rollen: Nicht die App greift auf die Identity-API zu, sondern der Client "schleppt" das Zertifikat im Browser zur App.
3. FIDO2 und WebAuthn
Das Ende des Passworts? Die FIDO2-Allianz (Apple, Google, Microsoft) baut Hardware-Keys direkt ins Web. Statt ein Passwort an den Server zu senden, registriert dein Smartphone (Secure Enclave) oder YubiKey mit WebAuthn ein asymmetrisches Schlüsselpaar im Browser. Nur der Public Key liegt auf dem Webserver der Bank. Beim Login sendet die Bank eine kryptografische "Challenge" (Gleichung). Dein Smartphone bittet dich um deinen Fingerabdruck, um den Private Key zu entsperren, rechnet die Challenge aus und sendet die Lösung. Kein Phishing möglich, da niemals ein Passwort über das Internet übertragen wird.
5. Prüfen
Was ist der Unterschied zu Authorization?
AuthN = "Wer bist du?" (Login). AuthZ = "Darfst du das?" (Rechte). Ein Gast kann authenfiziert sein (er ist drin), aber keine Autorisierung haben (darf nicht in den Tresorraum).Ist FaceID sicher?
Ja, meist sicherer als ein kurzes Passwort. Aber biometrische Daten kann man nicht ändern. Wenn dein Fingerabdruck gestohlen wird (Datenleck), hast du ein Problem für immer.Warum nervt 2FA (Zwei-Faktor) so?
Weil Sicherheit immer Komfort kostet. Aber 2FA blockiert 99,9% aller automatisierten Hacker-Angriffe. Es ist der wichtigste Schutz überhaupt.
Zusammenfassung
- Authentication ist die Frage: "Wer bist du?" Wenn du bei der Bank anrufst, fragen sie nach deinem Geburtsdatum. Das ist Authentication. Im Computer: Login mit Benutzername und Passwort. Der Computer prüft, ob du wirklich der bist, der du vorgibst zu sein.
- Es gibt drei Wege, zu beweisen, wer du bist (Faktoren): 1. Wissen (Etwas, das du weißt): Passwort, PIN. (Unsicher, weil es gestohlen werden kann). 2. Besitz (Etwas, das du hast): Handy, EC-Karte, YubiKey. 3. Sein (Etwas, das du bist): Fingerabdruck, Gesicht...
- Für die Grundlagen dahinter fuehren password, hashing, salt und brute-force die wichtigsten Sicherheitsbegriffe zusammen.
Optionale Praxisaufgabe
- Erkläre Authentication in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Authentication relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
IT-Sicherheit S1
Überblick: IT-Sicherheit bedeutet, digitale Systeme vor Missbrauch, Ausfall und Datenverlust zu schützen. Es geht nicht nur um Hacker, sondern auch um Fehlkonfigurationen, schwache Passwörter, fehlende Backups und falsche Berechtigungen. Gute Sicherheit macht Risiken sichtbar und begrenzt Schaden.
Einfach erklärt: Praktische Sicherheit beginnt mit Updates, starken Passwörtern, MFA, Backups, Rollenrechten und sauberem Logging. Bei Webanwendungen gehoeren Eingabevalidierung, sichere Sessions, Rate Limits und Schutz vor Injection dazu. Im Betrieb sind Monitoring und Incident-Prozesse entscheidend.
Tiefer verstanden: Sicherheitsarbeit verbindet Prävention, Erkennung und Reaktion. Prävention reduziert Angriffswege, Erkennung findet Auffaelligkeiten und Reaktion begrenzt Schaden. Dazu gehoeren Threat Modeling, Zugriffskontrolle, Netzwerksegmentierung, Dependency-Scanning, Secrets-Management und Audit Logs.
Praxisgrenze: Absolute Sicherheit gibt es nicht. Jede Massnahme hat Kosten, Bedienaufwand und Restrisiken. Gefaehrlich sind Sicherheitsfeatures ohne Betrieb: ein WAF ohne Alerts, Logs ohne Review oder Backups ohne Restore-Test. Sicherheit muss zur Bedrohung, Datenart und Nutzergruppe passen.
Was sind die drei klassischen Schutzziele?
Vertraulichkeit, Integritaet und Verfügbarkeit. Daten sollen geheim bleiben, korrekt bleiben und erreichbar sein.Warum reichen Passwörter allein oft nicht?
Sie können gestohlen, erraten oder wiederverwendet werden. MFA senkt das Risiko deutlich.Was ist eine typische Falle?
Sicherheitswerkzeuge einzubauen, aber Alerts, Updates, Rollen und Wiederherstellung nicht zu betreiben.
2FA (Zwei-Faktor-Authentifizierung) S1
Überblick: Stell dir vor, deine Haustür hat nicht nur ein normales Schloss, sondern zusätzlich einen Wachmann, der dich nur reinlässt, wenn du ihm deinen Ausweis zeigst. Selbst wenn jemand deinen Hausschlüssel klaut, kommt er nicht rein, weil er deinen Ausweis nicht hat.
Einfach erklärt: Es gibt verschiedene Methoden für den "zweiten Faktor". Nicht alle sind gleich sicher.
Tiefer verstanden: Hier schauen wir unter die Haube. Wie funktioniert die Magie mathematisch?
Praxisgrenze: Enterprise-Umgebungen benötigen eine skalierbare Architektur für MFA (Multi-Faktor-Authentifizierung), die weit über Consumer-TOTP-Apps hinausgeht.
Warum ist SMS-2FA unsicher?
SMS ist unverschlüsselt und kann abgefangen werden (SIM-Swapping). Zudem tippen Nutzer den Code oft bereitwillig auf Phishing-Seiten ein.Was schützt vor "MFA Fatigue" (Push-Spam)?
"Number Matching". Der Nutzer muss eine Zahl, die auf dem PC-Anmeldebildschirm steht, in die App eintippen. Das beweist, dass er wirklich vor dem Bildschirm sitzt.Was ist der Unterschied zwischen 2FA und 2-Schritt-Verifizierung (2SV)?
Oft synonym verwendet. Streng genommen verlangt 2FA zwei verschiedene Faktortypen (Wissen + Besitz). Wenn du zwei Passwörter eingeben musst (Wissen + Wissen), ist das 2SV, aber keine echte 2FA.
Passwort S1
Überblick: Ein Passwort ist ein Geheimnis, mit dem du beweist, dass ein Konto zu dir gehört. Es soll leicht genug sein, damit du es sicher nutzen kannst, aber schwer genug, damit andere es nicht erraten.
Einfach erklärt: Nutze lange Passphrasen oder einen Passwortmanager. Wiederverwende Passwörter nicht auf mehreren Seiten. Wenn ein Dienst Zwei-Faktor-Login anbietet, aktiviere ihn, weil ein gestohlenes Passwort dann allein nicht reicht.
Tiefer verstanden: Server sollten Passwörter nie im Klartext speichern. Üblich sind langsame Passwort-Hash-Verfahren mit Salt, damit gestohlene Datenbanken nicht sofort alle Konten offenlegen. Rate Limits, Login-Warnungen und sichere Reset-Prozesse gehören zur Baseline.
Praxisgrenze: Passwörter scheitern oft nicht an Mathematik, sondern an Wiederverwendung, Phishing, unsicheren Reset-Mails und schlechten Login-Flows. Für produktive Plattformen sind Passwortregeln, Session-Sicherheit, Audit-Logs und Recovery-Prozesse gemeinsam zu betrachten.
Warum ist Wiederverwendung gefährlich?
Wenn ein Dienst gehackt wird, können Angreifer dasselbe Passwort bei anderen Diensten testen.Warum speichert man Passwörter nicht im Klartext?
Damit ein Datenbankleck nicht sofort alle Konten kompromittiert.Was bringt ein Passwortmanager?
Er erzeugt und speichert lange, eindeutige Passwörter pro Dienst.
Hashing (Hash Function) S1
Überblick: Ein Fleischwolf für Daten. Du wirfst ein ganzes Buch ("Krieg und Frieden") rein. Unten kommt eine kurze Zahlenreihe raus ("a3f9..."). Regeln des Fleischwolfs: 1. Einweg: Du kannst aus der Wurst ("a3f9...") nicht wieder das Buch machen. 2. Deterministisch: Das gleiche Buch ergibt immer die gleiche Wurst. 3. Chaos (Avalanche): Wenn du im Buch nur ein Komma änderst, sieht die Wurst komplett anders aus ("7b2x...").
Einfach erklärt: In Python: python import hashlib print(hashlib.sha256(b"Hallo").hexdigest())
Unterschied zu Verschlüsselung?
Verschlüsselung ist umkehrbar (mit Key). Hashing ist NICHT umkehrbar (Einbahnstraße).Map/Dictionary?
In der Programmierung (HashMap) nutzt man Hashes, um Daten schnell zu finden (O(1)). Hier ist kryptografische Sicherheit egal, Speed ist alles.Bit-Rot Detection?
Filesysteme wie ZFS nutzen Hashes für jeden Block. Wenn die Festplatte ein Bit kippt (Bit Rot), merkt ZFS: Hash stimmt nicht mehr -> Reparatur.
Salt (Cryptography) S1
Überblick: Wenn zwei User das gleiche Passwort haben ("geheim123"), haben sie auch den gleichen Hash. Ein Hacker sieht in der Datenbank: "Aha, User A und User B haben das gleiche Passwort." Und er kann eine Rainbow Table nutzen. Um das zu verhindern, gibt man Salz dazu. Rezept: 1. Generiere eine Zufallszahl (Salt) für User A: "X9z". 2. Hash = sha256("geheim123" + "X9z"). 3. Speichere Salt ("X9z") offen neben dem Hash in der Datenbank.
Einfach erklärt: Du musst es (hoffentlich) nie selbst bauen. Bibliotheken wie bcrypt machen das automatisch. python hashed = bcrypt.hashpw(password, bcrypt.gensalt()) Niemals das Salt selbst erfinden ("MeinSaltIstSuper"). Nutze immer kryptografisch starke Zufallsgeneratoren (/dev/urandom).
Muss das Salt geheim sein?
Nein! Es steht meist im Klartext in der gleichen Datenbank-Zeile wie der Hash. Sein einziger Zweck ist Einzigartigkeit, nicht Geheimhaltung.Client-Side Salting?
Das Passwort schon im Browser salzen und hashen? Schlechte Idee. Dann ist der Hash das "neue Passwort". Wenn der Hacker den Hash klaut, kann er sich damit einloggen (Pass-the-Hash). Hashing gehört auf den Server.Kollision im Salt?
Extrem unwahrscheinlich bei 128 Bit. Und selbst wenn: Dann haben halt zufällig zwei User das gleiche Salt. Kein Sicherheitsbruch, nur ein minimaler Zufall.
Brute Force Attack S1
Überblick: Wie knackt man ein Zahlenschloss (000-999), wenn man den Code nicht kennt? Man probiert alle Zahlen aus. 000, 001, 002 ... 999. Irgendwann muss es klappen. Das ist Brute Force (Rohe Gewalt). Keine Intelligenz, nur Fleiß. Computer sind sehr schnell darin. Ein einfaches Passwort (passwort1) wird in Millisekunden erraten.
Einfach erklärt: Als Verteidiger machst du es dem Angreifer schwer (Mathematik): 1. Länge: Jedes Zeichen mehr erhöht den Aufwand exponentiell. 8 Zeichen sind in Stunden knackbar. 12 Zeichen dauern Jahrhunderte. 2. Komplexität: Sonderzeichen vergrößern den Suchraum. 3. Rate Limiting: Nach 3 falschen Versuchen sperrst du den Account für 5 Minuten. Das tötet jeden Online-Brute-Force-Angriff.
Wie lange dauert 8 Zeichen (a-z)?
Sekunden für einen PC.Key Stretching?
Technik, um Hashing langsamer zu machen. Man hasht das Passwort nicht 1x, sondern 100.000x (PBKDF2). Der User merkt die 0.1s Verzögerung kaum, aber der Hacker muss für jeden Versuch 100.000x mehr rechnen.Reverse Brute Force?
Password Spraying. Man probiert nicht 1000 Passwörter für einen User (fällt auf, Sperrung). Man probiert ein häufiges Passwort ("Winter2023!") für 1000 User. Oft erfolgreich und unauffällig.
Cookie (HTTP Cookie) S1
Überblick: HTTP hat Alzheimer. Wenn du Seite A lädst und dann Seite B, weiß der Server nicht mehr, wer du bist. Lösung: Der Server gibt dir beim ersten Besuch einen kleinen Zettel (Cookie) mit. "Du bist User 123." Dein Browser speichert den Zettel. Bei jedem weiteren Klick auf dieser Seite zeigt dein Browser den Zettel automatisch vor. Server: "Ah, User 123 ist wieder da." Ohne Cookies gäbe es keinen Login und keinen Warenkorb.
Einfach erklärt: In den DevTools (F12) - Application - Cookies. Du siehst Name (sessionid) und Wert (xyz...). In PHP: setcookie("user", "Max", time()+3600); Achtung: Cookies sind auf 4KB begrenzt. Speichere dort keine großen Daten!
Session vs. Persistent?
Session-Cookie: Hat kein Ablaufdatum. Wird gelöscht, wenn Browser geschlossen wird. Persistent-Cookie: HatExpires=2025. Bleibt auch nach Neustart da ("Angemeldet bleiben").Kann ich Cookies löschen?
Ja, der User hat die volle Kontrolle. Ein Entwickler darf sich nie darauf verlassen, dass ein Cookie für immer da bleibt.Signed Cookies?
Um Manipulation zu verhindern (user=adminfälschen), signiert das Framework das Cookie (user=admin.HashedSignature). Wenn der User es ändert, stimmt die Signatur nicht mehr -> Server verwirft es.
XML S1
Überblick: XML ist eine Sprache, um Daten so aufzuschreiben, dass sowohl Menschen als auch Maschinen sie lesen können. Es sieht fast aus wie HTML (mit spitzen Klammern ), aber du darfst die Tags selbst erfinden. In HTML gibt es nur oder . In XML kannst du schreiben: BMWRot Es ist wie ein digitaler Packzettel, der genau beschreibt, was im Paket ist.
Einfach erklärt: Früher (2000er) war XML der König des Datenaustauschs. Heute ist es oft durch JSON ersetzt worden (weil JSON einfacher und kürzer ist). Aber XML lebt noch überall: 1. Konfigurationsdateien: Viele Server speichern ihre Einstellungen in XML. 2. Office-Dateien: Eine .docx Datei ist eigentlich ein ZIP-Archiv voller XML-Dateien. (Benenne mal eine Word-Datei in .zip um und öffne sie!). 3. Sitemaps: Google liest sitemap.xml, um zu wissen, welche Seiten deine Webseite hat.
Was ist besser: XML oder JSON?
Für Web-Apps heute fast immer JSON (kleiner, schneller für JavaScript). XML ist besser für komplexe Dokumente mit strengen Regeln (Banken, Versicherungen).Was haben HTML und XML gemeinsam?
Beide sind "Markup Languages" (Auszeichnungssprachen) und basieren auf Tags. Aber HTML ist für Darstellung (Aussehen), XML für Daten (Inhalt).Warum sind Word-Dateien eigentlich XML?
Damit man sie auch ohne Word öffnen und lesen kann. Das "Open XML Format" (docx, xlsx) ist ein offener Standard, damit deine Daten nicht in einem geheimen Format gefangen sind.
Schritt 15 / 65
Authorization
Rechte und Zugriffe trennen.
S2
Schritt 15 / 65
Authorization
Rechte und Zugriffe trennen.
1. Verstehen
Nach der Authentifizierung ("Wer bist du?") kommt die Autorisierung ("Was darfst du?").
Authenfizierung ist der Ausweis. Autorisierung ist der Schlüsselbund.
Nur weil du Mitarbeiter bist (AuthN), darfst du nicht in den Tresorraum (AuthZ).
Ein System muss prüfen: "Hat User Alice das Recht delete_database?"
Wenn ja -> Aktion erlaubt.
Wenn nein -> "403 Forbidden".
Merksatz: Der Prozess der Zuweisung und Überprüfung von Zugriffsrechten auf Ressourcen. Es entscheidet, ob ein authentifizierter Benutzer eine bestimmte Aktion ausführen darf.
Lernbruecke für Anfänger
Wenn du bei Authorization ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Rechte und Zugriffe trennen. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Meistens über Rollen (Roles).
- Admin: Darf alles.
- Editor: Darf schreiben und lesen.
- Viewer: Darf nur lesen.
Wenn du dich einloggst, lädt die App deine Rollen.
Im Code steht dann:
if (user.role == 'Admin') { showDeleteButton() }. Das ist simpel, aber nicht sehr flexibel.
Praxisroutine
In der Praxis lernst du Authorization, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. RBAC vs. ABAC
- RBAC (Role-Based Access Control): Du hast die Rolle "Manager". Manager dürfen "Approve". Einfach zu verwalten.
- ABAC (Attribute-Based Access Control): Viel feiner. "User darf Dokument X lesen, WENN (User.Department == Dokument.Department) UND (Uhrzeit ist Werkstag) UND (User ist im VPN)." Das ist extrem mächtig ("Fine-Grained Authorization"), aber komplex zu implementieren (z. B. mit OPA - Open Policy Agent).
2. OAuth 2.0 Scopes
Bei APIs nutzt man Scopes im JWT Token.
Scope: read:profile, write:orders.
Die API prüft bei jedem Request: "Hat das Token den Scope write:orders?"
Das ist "Delegated Authorization" – der User erlaubt der App, in seinem Namen zu handeln, aber nur begrenzt.
3. ReBAC (Relationship-Based Access Control)
Bekannt durch Google Zanzibar (das System hinter Google Drive). Berechtigungen basieren auf Graphen. "Alice darf File A lesen, weil File A im Folder B ist, und Folder B gehört Gruppe C, und Alice ist Mitglied von Gruppe C." Das System wandert den Graphen ab, um "Ja/Nein" zu entscheiden. Extrem schnell bei Millionen von Objekten.
4. Vertiefen
OPA (Open Policy Agent) & Rego
Historisch war Autorisierungslogik tief in den Code der Applikation ("Spaghetti-Code") eingebacken. Moderne Architekturen "entkoppeln" AuthZ. Die App fragt einen externen Service: "Darf User X das tun?". Der Quasi-Standard dafür ist der Open Policy Agent (OPA). Policies werden bei OPA in einer deklarativen Sprache namens Rego geschrieben.
package app.rbac
default allow = false
allow {
input.user.role == "admin"
}
allow {
input.method == "GET"
input.path == ["api", "public"]
}
Die App schickt ein JSON mit dem Kontext an OPA, OPA evaluiert das Rego-Skript extrem schnell im RAM und gibt true oder false zurück. Das ermöglicht es Security-Teams, Regeln zentral zu ändern, ohne die Applikation neu deployen zu müssen.
Google Zanzibar (Globale Scale ReBAC)
Wie prüft Google Drive in Millisekunden, ob du Datei X sehen darfst, wenn diese in Ordner Y liegt, der mit Gruppe Z geteilt ist, in der du Mitglied bist? Mit relationalen Datenbanken klappt das nicht bei Milliarden von Dateien.
Google Zanzibar ist ihr internes AuthZ-System. Es normalisiert alle Berechtigungen in ein Format: Tuple(Object, Relation, User).
Beispiel: (doc:123, viewer, group:456#member).
Diese "Tupel" werden in gigantischen, weltweit verteilten Graph-Datenbanken (Spanner) gespeichert. Modernere Open-Source Klone wie SpiceDB (Authzed) bringen dieses ReBAC (Relationship-Based Access Control) Konzept in den Enterprise-Mainstream.
The Confused Deputy Problem
Ein klassisches AuthZ-Sicherheitsproblem.
Bob darf Rechnungen ansehen, aber nicht löschen (sein Token hat Scope read:invoice).
Bob sendet einen Request an die Rechnungs-App. Die Rechnungs-App muss intern die Datenbank ansprechen. Die App nutzt dafür oft ihr eigenes Service-Konto (das alles darf).
Wenn Bob es schafft, der App einen fehlerhaften Parameter unterzujubeln, führt die App eine Löschung durch – als "verwirrter Stellvertreter".
Die Lösung? Token Exchange (z.B. in OAuth 2.0). Die App nutzt Bobs Token, um sich beim Auth-Server ein neues Token in Bobs Namen ausstellen zu lassen, bevor sie die Datenbank aufruft. So wird Bobs eingeschränkter Scope über alle Microservices hinweg durchgesetzt ("Identity Delegation").
5. Prüfen
Was ist IDOR?
Insecure Direct Object Reference. Ein häufiger AuthZ-Fehler. Ich ändere die URL von/orders/1auf/orders/2und sehe die Bestellung von jemand anderem, weil das System nur geprüft hat "Ist er eingeloggt?" aber nicht "Gehört ihm Order 2?".Kann ich AuthZ ohne AuthN machen?
Nein. Um zu entscheiden, was jemand darf, muss ich erst sicher wissen, wer er ist. AuthN ist die Voraussetzung für AuthZ.Wo entscheide ich AuthZ?
Immer server-seitig (Backend)! Niemals im Frontend (display: nonebeim Admin-Button ist kein Schutz, Hacker senden den API Request trotzdem).
Zusammenfassung
- Nach der Authentifizierung ("Wer bist du?") kommt die Autorisierung ("Was darfst du?"). Authenfizierung ist der Ausweis. Autorisierung ist der Schlüsselbund. Nur weil du Mitarbeiter bist (AuthN), darfst du nicht in den Tresorraum (AuthZ). Ein System muss...
- Meistens über Rollen (Roles). Admin: Darf alles. Editor: Darf schreiben und lesen. Viewer: Darf nur lesen. Wenn du dich einloggst, lädt die App deine Rollen. Im Code steht dann: if (user.role == 'Admin') { showDeleteButton() }. Das ist simpel, aber nicht sehr...
Optionale Praxisaufgabe
- Erkläre Authorization in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Authorization relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
RBAC (Role-Based Access Control) S3
Überblick: Stell dir eine Firma vor. Du gibst nicht "Hans" den Schlüssel zum Serverraum. Und "Petra" den Schlüssel zum Serverraum. Und "Klaus"... Das wird chaotisch. Wenn Hans geht, musst du wissen, welche Schlüssel er hatte. Stattdessen erfindest du eine Mütze mit der Aufschrift "Admin". Du sagst: "Wer die Admin-Mütze trägt, darf in den Serverraum." Du gibst Hans die Mütze. Hans = Admin. Admin = Serverraum. Wenn Hans die Abteilung wechselt, nimmst du ihm nur die Mütze weg. Die Regeln für den Serverraum musst du nicht anfassen. RBAC ordnet Rechte an Rollen, nicht an Personen.
Einfach erklärt: Standard in fast jeder Business-Software. Editor: Darf Artikel schreiben. Publisher: Darf Artikel veröffentlichen. Admin: Darf User löschen. Ein User kann mehrere Rollen haben.
Was ist DAC?
Discretionary Access Control (Windows Dateisystem). "Ich (Owner) erlaube dir Zugriff." Bei RBAC (Non-Discretionary) entscheidet der Admin zentral, nicht der User.Was ist MAC?
Mandatory Access Control (Militär). Jeder hat ein Label ("Top Secret"). Jedes Dokument hat ein Label. Das System entscheidet hart. RBAC ist flexibler.Best Practice?
Principle of Least Privilege. Gib Usern immer nur die Rolle mit den wenigsten Rechten, die sie gerade so brauchen.
ABAC (Attribute-Based Access Control) S3
Überblick: RBAC ("Du bist Admin") ist oft zu grob. Was, wenn der Admin nur während der Arbeitszeit (9-17 Uhr) zugreifen darf? Oder nur, wenn er im Büro (IP-Adresse) sitzt? RBAC scheitert hier ("Rolle Admin9to5"?). ABAC ist feinkörniger. Es schaut auf Attribute: Wer bist du? (Abteilung = IT). Was willst du? (Datei = Geheim). Wo bist du? (Ort = Berlin). Wann ist es? (Zeit = 14:00). Regel: "Zugriff erlaubt WENN (Abteilung == IT) UND (Ort == Büro)." Es ist wie ein intelligenter Türsteher, der nicht nur auf die VIP-Karte schaut, sondern auch kontrolliert, ob du Schuhe trägst.
Einfach erklärt: In der Cloud (AWS IAM) ist fast alles ABAC. Policy: json { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "my-bucket/", "Condition": { "IpAddress": {"aws:SourceIp": "1.2.3.4/32"} } } Hier ist die IP-Adresse das Attribut der Umgebung.
Ersetzt es RBAC?
Jein. Meistens kombiniert man es. Man nutzt Rollen (RBAC) für das Grobe und Attribute (ABAC) für die Details ("Admin, aber nur für eigene Region").Was ist "Next Generation Access Control"?
Ein Begriff vom NIST, der ABAC noch erweitert um Graphen-Beziehungen. Aber ABAC ist aktuell der Goldstandard für komplexe Security.Warum nicht immer ABAC?
Zu komplex zu verwalten. Wenn niemand mehr versteht, warum der Zugriff verweigert wurde (weil irgendein Attribut "Mondphase" falsch war), leidet die Usability.
Least Privilege S1
Überblick: Gib einem Handwerker nicht deinen ganzen Schlüsselbund, sondern nur den Schlüssel für den Keller. Gib einer App nicht Admin-Rechte ("God Mode"), wenn sie nur Logfiles schreiben muss. Das Prinzip der geringsten Rechte (Principle of Least Privilege). Jeder User und jedes Programm bekommt nur genau so viele Rechte, wie es unbedingt braucht, um die Arbeit zu tun. Nicht mehr. Warum? Wenn die App gehackt wird, kann der Hacker nur Logfiles schreiben, aber nicht die Datenbank löschen. Der Schaden ("Blast Radius") ist begrenzt.
Was ist "Privilege Escalation"?
Der Angriff, bei dem man mit wenig Rechten anfängt (User) und eine Lücke nutzt, um mehr Rechte zu bekommen (Root). Least Privilege erschwert das, verhindert es aber nicht (Kernel Bugs).Ist es unbequem?
Ja. Zu wenig Rechte -> "Permission Denied". Entwickler hassen es ("Mach mir einfach Full Access, damit es läuft!"). Sicherheit ist immer ein Trade-Off mit Bequemlichkeit ("Friction").Wie finde ich die "Least Privileges"?
Schwer. Man fängt oft restriktiv an, schaut in die Audit-Logs ("Access Denied"), und gibt dann genau dieses Recht dazu. Tools wie AWS IAM Access Analyzer helfen dabei ("Dieser User hat S3FullAccess, nutzt aber seit 90 Tagen nur Read. Ich schlage ReadOnly vor.").
Schritt 16 / 65
API Authentication
APIs mit Keys, Tokens und Signaturen absichern.
S2
Schritt 16 / 65
API Authentication
APIs mit Keys, Tokens und Signaturen absichern.
1. Verstehen
Wenn du dich bei Instagram einloggst, gibst du Passwort und Nutzername ein. Aber wie "loggt" sich eine App bei einer anderen App (API) ein? Wenn deine Wetter-App Daten vom Wetter-Dienst abruft, muss sie beweisen: "Ich bin die App XYZ und ich habe für den Service bezahlt." Das ist API Authentication. Es ist die (digitale) Ausweiskontrolle am Eingang der API. Ohne Auth könnte jeder Hacker die API nutzen, Daten klauen oder löschen.
Merksatz: Verfahren zur Überprüfung der Identität eines Clients (User oder Maschine), der auf eine API zugreift. Nicht zu verwechseln mit Authorization (Rechteverwaltung).
2. Anwenden
Die gängigsten Methoden im HTTP-Header:
- Basic Auth: Der Klassiker (aber veraltet).
Authorization: Basic dXNlcjpwYXNz(Base64 von user:pass). Problem: Man schickt das Passwort bei jedem Request mit. Wenn HTTPS versagt, ist das Passwort weg. - API Key: Ein langer geheimer String.
X-API-Key: abcdef123456. Gut für Server-zu-Server. Schlecht für Mobile Apps (kann extrahiert werden). - Bearer Token: Der moderne Standard.
Authorization: Bearer <token>. Das Token (oft ein JWT) ist ein temporäres Ticket. Wenn es geklaut wird, läuft es bald ab.
3. Technisch einordnen
1. OAuth 2.0 & OpenID Connect (OIDC)
Für komplexe Szenarien ("Log in with Google") reicht ein einfacher Key nicht. Hier nutzt man OAuth2. Es gibt verschiedene "Flows" (Abläufe):
- Client Credentials Flow: Maschine redet mit Maschine (Backend zu Backend). Gibt API Key, kriegt Token.
- Authorization Code Flow: User klickt "Allow", Browser wird umgeleitet, Server tauscht Code gegen Token. Das entkoppelt die Credentials vom Zugriff. Die App sieht nie das Passwort des Users.
2. mTLS (Mutual TLS)
Die sicherste Methode (Banken, Zero Trust). Normalerweise authentifiziert sich nur der Server per Zertifikat ("Ich bin google.com"). Bei mTLS authentifiziert sich auch der Client mit einem Zertifikat ("Ich bin Partner-Server A"). Der TLS-Handshake gelingt nur, wenn beide Seiten gültige Zertifikate haben. Auth passiert also auf Layer 4/5 (Transport), bevor überhaupt der erste HTTP-Byte gesendet wird.
3. HMAC Signatures (Alternative zu Tokens)
AWS S3 nutzt das. Man schickt keinen Key über die Leitung.
Man signiert den Request.
Unterschrift = Hash(Request + SecretKey).
Der Server hat auch den SecretKey und rechnet nach.
Vorteil: Wenn der Request unterwegs verändert wird (Man-in-the-Middle), stimmt die Unterschrift nicht mehr. Und man schickt das Secret nie über das Netz.
4. Vertiefen
Der OAuth 2.0 PKCE Flow (Proof Key for Code Exchange)
Früher nutzte man für Mobile-Apps den "Implicit Flow" (Token wird direkt in der URL zurückgegeben). Dieser gilt heute als unsicher! Der empfohlene Standard ist "Authorization Code Flow with PKCE". Ablauf:
- Die App generiert einen zufälligen
code_verifierund errechnet den Hash (code_challenge). - Die App öffnet den Browser für den Login und schickt die
code_challengemit. - Der Server merkt sich die Challenge und gibt einen Auth-Code zurück.
- Die App tauscht den Code gegen ein Token und sendet dabei den originalen
code_verifiermit. Der Server rechnet nach, ob Verifier = Challenge. Da ein bösartiger Interceptor nur den Code (Schritt 3) klauen kann, aber nicht den intern generierten Verifier (Schritt 1), scheitert der Diebstahl.
Token Manipulation & Key Rollover
Wenn ein JWT mit einem Public/Private Key Pair signiert wird (RS256), hast du ein Problem: Was passiert, wenn der Private Key kompromittiert ist?
Enterprise APIs nutzen JWKS (JSON Web Key Sets).
Unter dem Endpoint /.well-known/jwks.json veröffentlicht der Auth-Server seine Public Keys, und jeder Key hat eine "kid" (Key ID).
Im Header deines JWTs steht z. B. {"alg": "RS256", "kid": "key-2026-v1"}.
So kann der Auth-Server fließend unbemerkt neue Keys einführen ("Key Rollover"), während alte Token langsam ablaufen.
API Gateways & Edge Authentication
In einer Microservice-Architektur implementiert nicht jeder Service (User, Orders, Payments) seine eigene Auth-Logik.
Das ist ein massives Sicherheitsrisiko.
Man lagert Auth an den "Edge" (den Rand des Netzwerks) aus, meist in ein API Gateway (Kong, AWS API Gateway) oder in einen Ingress Controller/Sidecar (Istio).
Das Gateway macht den teuren Krypto-Check des Tokens, validiert die Ablauffrist und extrahiert die User-Infos. Es leitet den Request dann an das interne Backend weiter, z.B. versehen mit speziellen, schnellen internen Headern (X-User-Id), die im sicheren internen Netz bedingungslos vertraut werden.
5. Prüfen
AuthN vs. AuthZ?
AuthN (Authentication) = "Wer bist du?" (Ausweis). AuthZ (Authorization) = "Was darfst du?" (Schlüsselbund). Man macht immer erst AuthN, dann AuthZ.Warum sind JWTs (JSON Web Tokens) so beliebt?
Weil sie "Stateless" sind. Alle Infos ("User ID: 5, Admin: true") stehen im Token und sind digital signiert. Der Server muss nicht in der Datenbank nachschauen (spart DB-Last), sondern nur die Signatur prüfen (CPU).Kann man API Keys in JavaScript (Frontend) nutzen?
Niemals Private/Secret Keys! Jeder kann "Rechtsklick -> Quelltext anzeigen" machen. Für Frontends nutzt man kurzlebige Tokens oder spezielle "Publishable Keys" mit minimalen Rechten.
Zusammenfassung
- Wenn du dich bei Instagram einloggst, gibst du Passwort und Nutzername ein. Aber wie "loggt" sich eine App bei einer anderen App (API) ein? Wenn deine Wetter-App Daten vom Wetter-Dienst abruft, muss sie beweisen: "Ich bin die App XYZ und ich habe für den...
- Die gängigsten Methoden im HTTP-Header:
Optionale Praxisaufgabe
- Erkläre API Authentication in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem API Authentication relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Encryption (Symmetric vs. Asymmetric) S1
Überblick: Geheimschrift. Du verwandelst "Hallo" in "Xj9b". Nur wer den Schlüssel hat, kann es zurückverwandeln. Es gibt zwei Hauptarten: 1. Symmetrisch (Wie ein Haustürschlüssel): Derselbe Schlüssel sperrt zu UND auf. Schnell. Problem: Wie gebe ich dir den Schlüssel, ohne dass der Postbote ihn klaut? 2. Asymmetrisch (Wie ein Briefkasten): Es gibt zwei Schlüssel: Öffentlicher (Schlitz) und Privater (Kastenschlüssel). Jeder kann Nachrichten einwerfen (verschlüsseln mit Public Key). Nur ich kann sie rausholen (entschlüsseln mit Private Key). Löst das Problem der Schlüsselübergabe!
Einfach erklärt: Das Internet (HTTPS) nutzt beides. Der "Hybrid-Ansatz": 1. Am Anfang (Handshake) nutzen wir Asymmetrisch (RSA/ECC), um sicher einen Schlüssel auszutauschen. 2. Danach nutzen wir diesen Schlüssel für Symmetrisch (AES), um die eigentlichen Daten (Netflix-Film) zu streamen. Warum? Weil Symmetrisch (AES) 1000x schneller ist als Asymmetrisch (RSA).
Ist Base64 Verschlüsselung?
NEIN! Base64 ist Encoding. Jeder kann es rückgängig machen. Es versteckt nichts, es ändert nur das Format. Ein tödlicher Anfängerfehler.Quantencomputer?
Bedrohen asymmetrische Verfahren (RSA/ECC steht vor dem Aus -> Shor's Algorithm). Symmetrische (AES) sind relativ sicher (man muss nur den Key verdoppeln -> AES-512). Post-Quantum-Krypto (Kyber, Dilithium) ist die Lösung.End-to-End (E2E)?
Der Server sieht nur Müll. Nur Sender und Empfänger haben die Keys. (WhatsApp, Signal). Anders als Transport-Verschlüsselung (HTTPS), wo der Server (Google) die Daten im Klartext sieht.
API Key S1
Überblick: Ein API Key ist wie ein Passwort, aber nicht für Menschen, sondern für Computer-Programme. Wenn du als Programmierer Wetterdaten von einem Dienst (wie OpenWeatherMap) abrufen willst, brauchst du ein Abo. Damit der Wetterdienst weiß, "Wer fragt da an?" und "Hat der bezahlt?", gibst du bei jeder Anfrage deinen API Key mit. Er ist eine lange, zufällige Zeichenkette: abcdef-123456-secret. Er identifiziert dein Projekt (nicht unbedingt den Endnutzer).
Einfach erklärt: Warnung: Committe niemals .env Dateien oder API Keys in Git! Bots scannen GitHub in Sekunden und nutzen deinen Key, um Krypto zu minen (auf deine Kosten).
API Key vs. User Passwort?
API Keys sind oft langlebig und gehören einer App/Maschine. Passwörter gehören Menschen. API Keys haben oft hohe Entropie (zufällig generiert), Passwörter sind oft schwach ("123456").Kann ich API Keys verschlüsseln?
Verschlüsselt übertragen (HTTPS) ja, zwingend! Aber im Code müssen sie irgendwann im Klartext vorliegen, um gesendet zu werden. Nutze Secret Manager (AWS Secrets Manager, HashiCorp Vault), um sie erst zur Laufzeit sicher einzuschleusen.Was tun, wenn ich aus Versehen einen Key committed habe?
Sofort im Dashboard "Revoke" (sperren) klicken. Key rotieren. Und die Git History ("git filter-branch") bereinigen, denn der Commit bleibt auch nach dem Löschen der Datei im Verlauf sichtbar.
mTLS (Mutual TLS) S3
Überblick: Bei normalem HTTPS (z. B. Amazon.com) zeigt der Server seinen Ausweis (Zertifikat). "Ich bin Amazon". Der Browser prüft das. Aber Amazon weiß nicht, wer du bist (Authentifizierung erfolgt erst später per Passwort). Bei mTLS zeigen beide ihren Ausweis. Der Server zeigt sein Zertifikat. Und der Client (Browser oder anderer Server) zeigt auch ein Zertifikat. Wenn der Client kein gültiges Zertifikat hat, wird die Verbindung sofort auf Netzwerk-Ebene getrennt. Es ist extrem sicher, weil keine Passwörter übertragen werden. Es wird oft zwischen Servern (Microservices) eingesetzt ("Zero Trust").
Einfach erklärt: Ohne mTLS: Server A - curl https://server-b (Server B vertraut jedem). Mit mTLS: Server A braucht: 1. client.crt (Öffentlich). 2. client.key (Geheim!). 3. ca.crt (Zum Prüfen von Server B). Server B braucht: 1. server.crt. 2. server.key. 3. ca.crt (Zum Prüfen von Server A). Konfiguration in Nginx: nginx sslclientcertificate /etc/nginx/ca.crt; sslverifyclient on; Wenn du jetzt ohne Zertifikat kommst: 400 Bad Request - No required SSL certificate was sent.
Ersetzt mTLS OAuth/JWT?
Nein. mTLS authentifiziert die Maschine (Service A). JWT authentifiziert den User (Max Mustermann), der die Anfrage ausgelöst hat. Man nutzt beides: mTLS für den Tunnel, JWT im Header für den User-Context.Performance-Kosten?
Der Handshake dauert etwas länger (Client muss Signieren & Senden). Aber die Verschlüsselung (Symmetrisch AES) ist danach genauso schnell wie normales HTTPS. CPU-Overhead ist heute vernachlässigbar.Debugging?
Schmerzhaft. Du kannst mit Wireshark nicht mehr reinschauen.curlgeht nicht mehr einfach so. Du brauchst spezielle Debug-Pods mit den richtigen Zertifikaten ("Netshoot").
Schritt 17 / 65
OAuth
Delegierte Anmeldung verstehen.
S1
Schritt 17 / 65
OAuth
Delegierte Anmeldung verstehen.
1. Verstehen
Du willst dich bei "Spotify" anmelden. Statt ein neues Passwort zu erfinden, klickst du "Login mit Facebook". Willst du Spotify dein Facebook-Passwort geben? Nein! (Spotify könnte sonst in deinem Namen posten). OAuth löst das. Du sagst Facebook: "Gib Spotify den Wohnungsschlüssel, aber nur für das Wohnzimmer (Musik), nicht fürs Schlafzimmer (Chat)." Spotify bekommt keinen Schlüssel (Passwort), sondern nur einen Token (Besucherausweis).
Merksatz: Ein offener Standard, der es Nutzern erlaubt, Drittanbietern Zugriff auf ihre Daten zu gewähren, ohne Passwörter weiterzugeben.
2. Anwenden
Das Fenster, das aufpoppt ("Zulassen, dass App X auf deine Kontakte zugreift?"), ist OAuth. Es gibt drei Parteien:
- Du (Resource Owner).
- Die App (Client, z. B. Spotify).
- Der Service (Authorization Server, z. B. Facebook/Google).
Praxisroutine
In der Praxis lernst du OAuth, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Access Token vs. Refresh Token
- Access Token: Der Ausweis. Damit holt Spotify deine Daten. Er ist nur kurz gültig (z. B. 1 Stunde). Wenn er geklaut wird, ist der Schaden begrenzt.
- Refresh Token: Der "Joker". Wenn der Access Token abläuft, schickt Spotify den Refresh Token an Google: "Gib mir einen neuen Ausweis." Den muss man extrem sicher speichern.
2. OAuth vs. OpenID Connect (OIDC)
OAuth ist für Erlaubnis (Authorization): "Darf Spotify meine Playlist sehen?" OIDC ist für Identität (Authentication): "Wer bin ich?" Der "Login mit Google"-Button nutzt eigentlich OIDC (das auf OAuth aufbaut).
Technische Einordnung im System
Technisch ist OAuth nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. Authorization Code Grant Code (PKCE)
Eine rohe Mobile-App kann den App-Secret-Key nicht verbergen (Hacker dekompilieren APKs in Minuten). Damit fiele der klassische Oath2 Flow, bei dem der App-Server sein Secret an Google funken muss, um den Code gegen Tokens zu tauschen (Confidential Client), komplett in sich zusammen. Die moderne Lösung ist PKCE (Proof Key for Code Exchange). Die Mobile-App erzeugt beim Login-Klick lokal im Handy einen kryptografischen Zufallsschlüssel (Code Verifier) und schickt nur dessen Hash-Wert (Code Challenge) an Google. Google sendet den Auth-Code zurück ans Handy. Nun muss die App das finale AccessToken abholen und sendet als Beweis den unlesbaren, rohen Verifier mit. Google hasht diesen Verifier auf dem Server nochmal. Stimmt der Hash absolut überein, weiß Google unwiderlegbar: Der Client, der das Token fordert, ist derselbe, der vor drei Minuten per Fingerwisch eingeloggt wurde. Ein böse mitlesender Man-in-the-Middle geht leer aus, da er den Code, aber niemals den Verifier stiehlt.
2. Bearer Tokens und JWT Delegation
Das Access Token (der Besucherausweis) wird bei fast allen modernen APIs als roher Bearer Token im HTTP Header übermittelt (Authorization: Bearer ds89Adf...). "Bearer" heißt wörtlich "Überbringer" – dem Server ist völlig egal, ob du ein Google Desktop Client oder eine russische Phishing-Bande bist. Wer dieses String-Token präsentiert, gilt als legitimer Inhaber und erhält Admin-Rechte auf dem Account.
Meistens (bei OIDC) steckt darinnen ein JSON Web Token (JWT), welches kryptografisch via ECDSA oder RS256 signiert ist und absolut dezentral vom Ziel-Server durch validieren des Google Public-Keys verifiziert werden kann, ohne Google bei jedem Request belästigen zu müssen.
3. Scopes und Principle of Least Privilege
OAuth brilliert bei Isolation. Eine App verlangt nicht einfach "Zugang". Sie sendet im Initial-Request einen scope Parameter (z.B. scope=read_calendar write_email).
Der Authorization Server (Login Page) klärt den Enduser in dicker, roter Schrift auf, welche Berechtigungen gefordert sind. Best Practice ist incremental authorization. Die App fordert beim Login nur profile an (minimal invasiv, hohe User-Adoption-Rate). Erst in der Sekunde, bei der der User auf "Kalender jetzt synchronisieren" drückt, startet die App dynamisch einen zweiten OAuth Flow spezifisch aufgerüstet mit dem neuen Scope.
5. Prüfen
Ist es sicher?
Sicherer als überall das gleiche Passwort zu nutzen! Wenn Spotify gehackt wird, haben sie nur einen Token (den du bei Facebook sperren kannst), nicht dein Facebook-Passwort.Was passiert, wenn ich mein Facebook-Konto lösche?
Dann kommst du nicht mehr in Spotify rein ("Single Point of Failure"). Das ist der Nachteil der Bequemlichkeit.Kostet das was?
Für Nutzer nein. Für Entwickler meistens auch nicht, aber große Anbieter (Twitter API) verlangen mittlerweile Geld für den Zugriff auf Daten.
Zusammenfassung
- Du willst dich bei "Spotify" anmelden. Statt ein neues Passwort zu erfinden, klickst du "Login mit Facebook". Willst du Spotify dein Facebook-Passwort geben? Nein! (Spotify könnte sonst in deinem Namen posten). OAuth löst das. Du sagst Facebook: "Gib Spotify...
- Das Fenster, das aufpoppt ("Zulassen, dass App X auf deine Kontakte zugreift?"), ist OAuth. Es gibt drei Parteien: 1. Du (Resource Owner). 2. Die App (Client, z. B. Spotify). 3. Der Service (Authorization Server, z. B. Facebook/Google).
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre OAuth in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem OAuth relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
API Gateway S1
Überblick: Stell dir ein riesiges Hotel vor (deine Software). Es gibt Köche, Putzkräfte, Elektriker (Microservices). Gäste (Nutzer) sollen aber nicht direkt in die Küche rennen, um Essen zu bestellen. Sie gehen zur Rezeption. Die Rezeption ist das API Gateway. Sie nimmt alle Wünsche entgegen. Sie prüft: "Sind Sie Gast hier?" (Sicherheit). Sie leitet den Wunsch an die richtige Abteilung weiter ("Küche, einmal Pizza für Zimmer 101").
Einfach erklärt: Wenn du eine App baust, willst du nicht, dass die App 50 verschiedene Server-Adressen kennen muss (auth-server.com, user-server.com, payment-server.com). Die App kennt nur eine Adresse: api.meine-app.com. Das Gateway dahinter sortiert: /login - geht zum Auth-Service. /pay - geht zum Payment-Service.
Ist das nicht ein "Single Point of Failure"?
Ja! Wenn die Rezeption brennt, kommt niemand mehr ins Hotel. Deshalb betreibt man Gateways oft im Cluster (mehrere Rezeptionisten).Was ist der Unterschied zum Load Balancer?
Ein Load Balancer verteilt Last innerhalb einer Gruppe gleicher Server (Webserver 1, 2, 3). Ein API Gateway verteilt Anfragen basierend auf Inhalt an verschiedene Services (/users, /billing) und macht dazu noch Logik wie Auth.Muss ich das selbst programmieren?
Bloß nicht. Nimm fertige Lösungen (Kong, Traefik, Nginx). Die sind millionenfach getestet und sicher.
Schritt 18 / 65
OAuth 2.0
Moderne Autorisierungsflüsse einordnen.
S3
Schritt 18 / 65
OAuth 2.0
Moderne Autorisierungsflüsse einordnen.
1. Verstehen
Du willst einer App (z. B. einem Fotodruck-Dienst) Zugriff auf deine Google Fotos geben. Sollst du der App dein Google-Passwort geben? Auf keinen Fall! (Sie könnte auch deine E-Mails lesen und Passwörter ändern). Lösung: OAuth 2.0. Du gibst der App einen Access Token (Valet Key). Dieser Token kann nur Fotos lesen. Und nur für 1 Stunde. Es ist eine Delegation. "Ich erlaube dieser App, in meinem Namen X zu tun."
Merksatz: Ein offener Standard zur Autorisierung, der es Anwendungen ermöglicht, begrenzten Zugriff auf Benutzerdaten auf einem anderen Dienst zu erhalten, ohne dass der Benutzer seine Anmeldeinformationen (Passwort) weitergeben muss.
2. Anwenden
Jedes Mal, wenn ein Popup kommt: "App X möchte zugreifen auf: Kontakte, Kalender".
Als Entwickler:
Nutze Libraries (passport.js, Spring Security).
Baue OAuth nie selbst (Security-Hölle).
Unterscheide:
- Authorization Code Flow: Für Server-Apps (Sicher).
- PKCE (Pixie): Für Mobile/SPA Apps (Pflicht!).
- Implicit Flow: Veraltet und unsicher (Nicht mehr nutzen!).
Praxisroutine
In der Praxis lernst du OAuth 2.0, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Scopes
Der Kern der Sicherheit.
scope="photos.read mail.send".
Der User sieht genau, was er erlaubt.
Der Token enthält diese Scopes (oft im JWT).
Der Resource Server (API) prüft: "Hat der Token mail.send? Nein? 403 Forbidden."
2. Refresh Token
Access Tokens leben kurz (z. B. 15 Min). Damit der User sich nicht ständig neu einloggen muss, gibt es den Refresh Token (lebt z. B. 30 Tage). Mit dem Refresh Token kann die App neue Access Tokens holen. Der Refresh Token ist hochsensibel und muss extrem sicher gespeichert werden.
Technische Einordnung im System
Technisch ist OAuth 2.0 nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. PKCE (Proof Key for Code Exchange) Cryptology
Mobile Apps haben ein hartes Naturgesetz: Alles, was auf dem Smartphone läuft (Frontend), kann rück-ge-engineered werden!
Beim normalen Authorization Code Flow für Server gibt es ein client_secret (ein Passwort), das der Server im Backend an den Auth Provider (Google) schickt, um den eigentlichen JWT zu generieren.
Eine iOS App darf dieses Secret niemals im Quelltext tragen! Wie verhindert man nun, dass eine asiatische Malware-App sich in den Android-Browser Hook reinhakt (Deep Link Interception) und den begehrten authorization_code vom Google Callback stiehlt und ihn sofort einlöst?
PKCE (IETF RFC 7636). Die Frontend App generiert beim Start flüchtig einen gigantischen Hash Zufall (code_verifier) und sendet beim Login nur dessen kryptografischen SHA-256 (code_challenge) mit.
Wenn der Google Login klappt und die Malware den resultierenden Code aus der URL fischt, schlägt sie am API-Endpoint fehl. Um den Code in ein Token umzutauschen, verlangt der Server als Hard-Beweis exakt den originalen flüchtigen Klartext code_verifier, den NUR die originale erste App im Session-RAM hält! Mithin perfekter Schutz für Public Clients ohne Backend-Secret (SPA/Mobile).
2. State-Parameter & CSRF Token Injection
Ein verheerender Vektor beim OAuth ist der Login-Cross-Site Request Forgery (CSRF).
Hacker Bob startet einen eigenen regulären OAuth Fluss bei Google. Er blockiert im Browser genau die letzte Millisekunde, bevor sein gestohlener code gegen seine echte Mail-ID eingelöst wird. Er kopiert diesen URL-Callback (https://deine-app.com/callback?code=Bobs_Böser_Code).
Bob schickt diesen Link per Phishing an Opfer Alice. Alice klickt!
Alices Browser übergibt unschuldig Bobs Code an DEINE App. Deine App tauscht den Code ein und verknüpft Alices offene Session-ID brutal mit Bobs-Google Account ("Login Forgery"). Bob hat sofort vollen Vollzugriff (!) auf Alices neu erstelltes Profil bei dir im SaaS.
Die einzige Rettung: Der state Parameter. Beim Start injectet dein Backend einen Random State (Nonce) in Alices Session-Cookie. Beim Rücksprung checkt das Backend hart: $Url.state == $Cookie.state. Alices Session weist Bobs manipulierten HTTP-Link sofort als fremden Nonce unbarmherzig ab.
3. JWT Audience (aud) vs Scope Exploit
Access Tokens (in der Form von verschlüsselten/signierten JWTs) leiten ihr Limit oft durch Scopes wie user.read ab.
Eines der größten architektonischen Leaks von Microservice-Parks ist das Ignorieren des Audience (aud) Claims.
Stell dir vor, du baust Service A (Bilder-Dienst) und Service B (Banking-Dienst). Beide delegieren ans gleiche OAuth Portal.
Ein Hacker loggt sich in Bilder-Dienst A legal ein und extrahiert seinen regulären JWT. Dieser JWT hat zufällig den globalen Scope read:all. Der Hacker feuert ihn an den Banking-Dienst API Endpoint B. Service B prüft nur die Signatur (korrekt) und Scope (korrekt, read:all) und dumpt die Banking Konten!
Dieser fatalistische "Token Pivot" Bug (Confused Deputy) wird durch aud vernichtet! Der Bilder-Dienst Token muss intern eingebettet den Empfänger referenzieren: "aud": "api-gateway-pictures". Service B lehnt den valid signierten JWT sofort unerbittlich ab (401 Unauthorized), weil er explizit einen Token für die Audience "api-banking" verlangt.
5. Prüfen
AuthN vs AuthZ?
Oft verwechselt. OAuth 2.0 ist für Authorization (Was darfst du?). OIDC (OpenID Connect) ist für Authentication (Wer bist du?). OAuth allein sagt nicht, wer der User ist (Pseudo-Authentication ist möglich, aber Design-Hack).Bearer Token?
"Wer den Token hat, hat die Macht." Wie Bargeld. Wenn du den Token verlierst, kann der Finder ihn nutzen. Deshalb immer HTTPS nutzen!RFC 6749?
Die Bibel. Aber schwer zu lesen. OAuth 2.1 fasst Best Practices zusammen und verbietet unsichere Flows (Implicit).
Zusammenfassung
- Du willst einer App (z. B. einem Fotodruck-Dienst) Zugriff auf deine Google Fotos geben. Sollst du der App dein Google-Passwort geben? Auf keinen Fall! (Sie könnte auch deine E-Mails lesen und Passwörter ändern). Lösung: OAuth 2.0. Du gibst der App einen...
- Jedes Mal, wenn ein Popup kommt: "App X möchte zugreifen auf: Kontakte, Kalender". Als Entwickler: Nutze Libraries (passport.js, Spring Security). Baue OAuth nie selbst (Security-Hölle). Unterscheide: Authorization Code Flow: Für Server-Apps (Sicher). PKCE...
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre OAuth 2.0 in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem OAuth 2.0 relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
API Gateway S1
Überblick: Stell dir ein riesiges Hotel vor (deine Software). Es gibt Köche, Putzkräfte, Elektriker (Microservices). Gäste (Nutzer) sollen aber nicht direkt in die Küche rennen, um Essen zu bestellen. Sie gehen zur Rezeption. Die Rezeption ist das API Gateway. Sie nimmt alle Wünsche entgegen. Sie prüft: "Sind Sie Gast hier?" (Sicherheit). Sie leitet den Wunsch an die richtige Abteilung weiter ("Küche, einmal Pizza für Zimmer 101").
Einfach erklärt: Wenn du eine App baust, willst du nicht, dass die App 50 verschiedene Server-Adressen kennen muss (auth-server.com, user-server.com, payment-server.com). Die App kennt nur eine Adresse: api.meine-app.com. Das Gateway dahinter sortiert: /login - geht zum Auth-Service. /pay - geht zum Payment-Service.
Ist das nicht ein "Single Point of Failure"?
Ja! Wenn die Rezeption brennt, kommt niemand mehr ins Hotel. Deshalb betreibt man Gateways oft im Cluster (mehrere Rezeptionisten).Was ist der Unterschied zum Load Balancer?
Ein Load Balancer verteilt Last innerhalb einer Gruppe gleicher Server (Webserver 1, 2, 3). Ein API Gateway verteilt Anfragen basierend auf Inhalt an verschiedene Services (/users, /billing) und macht dazu noch Logik wie Auth.Muss ich das selbst programmieren?
Bloß nicht. Nimm fertige Lösungen (Kong, Traefik, Nginx). Die sind millionenfach getestet und sicher.
Schritt 19 / 65
JWT (JSON Web Token)
Token-basierte Sessions lesen und bewerten.
S3
Schritt 19 / 65
JWT (JSON Web Token)
Token-basierte Sessions lesen und bewerten.
1. Verstehen
Früher (Session): Du gehst in den Club. Der Türsteher stempelt deine Hand. Die Barfrau guckt auf deine Hand ("Stempel da? Okay, Bier."). Alles passiert im Club. Heute (JWT): Du gehst zum Amt und kriegst einen Ausweis. Den Ausweis kannst du überall zeigen (Kino, Bank, Ausland). Der Ausweis enthält Infos ("Ist über 18"). Jeder, der dem Amt vertraut (Signatur prüfen), weiß, dass der Ausweis echt ist, ohne beim Amt anzurufen. JWT ist dieser Ausweis für Webseiten. Du loggst dich ein, kriegst ein JWT ("Token"). Das schickst du bei jedem Klick mit. Der Server weiß sofort, wer du bist, ohne in der Datenbank nachzusehen.
Merksatz: Ein offener Standard (RFC 7519) zum sicheren Übertragen von Informationen zwischen Parteien als JSON-Objekt, das digital signiert ist.
2. Anwenden
Format: Header.Payload.Signature (getrennt durch Punkte).
Base64-kodiert (sieht aus wie Buchstabensalat).
- Header: "Ich bin ein JWT, Algorithmus HS256."
- Payload: "User: Max, Rolle: Admin, Ablaufdatum: Morgen."
- Signature: Ein kryptografischer Siegel, das mit einem geheimen Schlüssel erstellt wurde. Wenn Max versucht, "Rolle: Admin" in "Rolle: Gott" zu ändern, passt das Siegel nicht mehr.
Praxisroutine
In der Praxis lernst du JWT (JSON Web Token), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Stateless Authentication
Der Server muss sich nichts merken (keine Session im RAM). Perfekt für Microservices. Service A stellt das Token aus. Service B (der keine DB hat) prüft nur die Signatur und weiß: "User ist okay." Das skaliert unendlich ("Horizontal Scaling").
2. Das Log-out Problem
Wie sperrt man einen User? Bei Sessions: Einfach Session löschen. Bei JWT: Das Token ist beim User (Browser). Man kann es ihm nicht wegnehmen. Es ist gültig bis zum Ablaufdatum (Expiration). Lösung: Blacklists (Redis) oder sehr kurze Lebensdauer (5 Min) + Refresh Tokens.
Technische Einordnung im System
Technisch ist JWT (JSON Web Token) nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. JWE (JSON Web Encryption) vs. JWS (Signature)
Entwickler verwechseln JWT stetig mit "Verschlüsselung" (Privacy). Ein Standard JWT ist eigentlich ein JWS (JSON Web Signature). Die Daten zirkulieren offen in Base64 (jeder Node/Router kann den HTTP Header mitlesen, wenn das TLS terminiert ist). Zwingen Gesetze, dass das Gesundheits-Token auch von Transit-Middleware unlesbar bleibt, adaptieren Systeme es als JWE (Encryption). Das JWE verpackt das Payload durch Cipher Text und Authenticated Encryption (AES-GCM / ChaCha20) mit einem asymmetrischen CEK (Content Encryption Key Protocol). So blitzt das Token im HTTP Auth Header wie kompletter Zufalls-Salat ohne JSON-Brackets auf. Die Decoderschlüssel besitzten nur jene exakten Edge-Microservices.
2. Signing Algorithmen: HS256 vs. RS256
Die Architektur entscheidet massiv über das symmetrische/asymmetrische Signierverhalten!
HS256 (Symmetrisch): Auth-Service signiert durch ein geheimes JWT-Passwort (Shared Secret Hmac-256). Tragödie: Jeder Microservice in deiner K8s-Infrastruktur, der das Puzzlestück verifizieren muss, braucht zwingend exakt selbes Passwort eingespielt. Wenn ein Shop-Service gehackt wird, hat der Angreifer das Token-Signatur-Secret und druckt wild gefälschte Admin-Tickets!
Daher Enterprise Standard RS256 (Asymmetrisch, RSA). Auth0/Keycloak haben den Private Key (und nur sie generieren JWTs). Jeder andere Microservice pullet dynamisch (via JWKS-Endpoint .well-known/jwks.json) die völlig gefahrlosen Public Keys runter und checkt die Zertifikatssignatur, ohne jemals selbst Fakes drucken zu können.
3. Token-Revokation Strategien
JWTs sind die Achillesferse der Session-Ungültigkeit, bedingt durch den totalen "Stateless" Aspekt.
Ein entlassener Mitarbeiter-Admin besitz ein Token gültig für 60 Minuten. Wie kickt der CISO das Token im Notfall?
Variante 1 (Anti-Stateless): Eine Denylist (Redis) mit Token IDs (jti-Claim). Jedes API-Gateway prüft den Hash. Dies zerstört aber komplett die Latenz Vorteile des JWTs.
Variante 2 (Rolling Expiry Refresh/Access): Das JWT hat nur 5 Minuten TTL. Nach 5 Min bittet die SPA (Frontend Oauth2/OIDC) das Auth0 Backend passiv im Backchannel per Refresh Token (14 Tage TTL) um Erneuerung. Der CISO nullt in der DB nur den Refresh-Grant. Das JWT verbrennt nach 5 Minuten restlos im RAM tot und der Client stürzt auf einen 401 Unauthenticated Screen, ohne dass die APIs global die DB fragen mussten.
5. Prüfen
Sind die Daten verschlüsselt?
Nein! Nur Base64-kodiert. Jeder kann es lesen (jwt.io). Speichere also NIEMALS Passwörter im Token. Die Signatur schützt nur vor Veränderung, nicht vor Mitlesen. (JWE = Encrypted JWT wäre die Lösung für Verschlüsselung).Wo speichern?
LocalStorage (einfach, aber anfällig für XSS-Klau). HttpOnly Cookie (sicherer gegen XSS, aber anfällig für CSRF). Security ist schwer.Algorithmus None?
Eine berühmte Lücke. Hacker änderten den Header aufalg: "none". Dumme Server dachten: "Okay, keine Signatur nötig" und ließen den Hacker als Admin rein. Ist heute gefixt.
Zusammenfassung
- Früher (Session): Du gehst in den Club. Der Türsteher stempelt deine Hand. Die Barfrau guckt auf deine Hand ("Stempel da? Okay, Bier."). Alles passiert im Club. Heute (JWT): Du gehst zum Amt und kriegst einen Ausweis. Den Ausweis kannst du überall zeigen...
- Format: Header.Payload.Signature (getrennt durch Punkte). Base64-kodiert (sieht aus wie Buchstabensalat). Header: "Ich bin ein JWT, Algorithmus HS256." Payload: "User: Max, Rolle: Admin, Ablaufdatum: Morgen." Signature: Ein kryptografischer Siegel, das mit...
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre JWT (JSON Web Token) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem JWT (JSON Web Token) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 20 / 65
Token
Zugriffsnachweise sicher verwenden.
S1
Schritt 20 / 65
Token
Zugriffsnachweise sicher verwenden.
1. Verstehen
Das Wort "Token" hat in der IT drei völlig verschiedene Bedeutungen.
- Sicherheit (wie eine Eintrittskarte): Wenn du dich bei Google einloggst, gibt dir Google ein "Token" (ein langes Passwort). Damit darfst du Gmail öffnen. Du musst dein echtes Passwort nicht jedes Mal neu eingeben.
- KI (wie eine Silbe): ChatGPT liest keine ganzen Wörter. Es zerhackt Text in "Tokens". Ein Token ist etwa 4 Zeichen lang (z. B. "Apfel" = 1 Token, "Donaudampfschifffahrt" = 5 Tokens).
- Krypto (wie eine Münze): Ein digitaler Vermögenswert auf einer Blockchain (z. B. ein NFT oder ERC-20 Token).
Merksatz: Eine digitale Zeichenfolge, die entweder für eine Berechtigung (Auth), eine textliche Einheit (AI) oder einen Wert (Blockchain) steht.
2. Anwenden
Auth Token (Bearer Token):
curl -H "Authorization: Bearer abcd123..." https://api.github.com/user
Wenn du das Token verlierst, kann jeder deinen Account nutzen (wie Bargeld).
LLM Token: User: "Erkläre Quantenphysik." OpenAI API: "Das kostet 50 Tokens." Als Entwickler bezahlst du pro 1000 Tokens (ca. 0,002 $).
Praxisroutine
In der Praxis lernst du Token, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. JWT (JSON Web Token)
Der Standard für Auth Tokens.
Es ist ein Token, das Daten enthält (Payload), die kryptografisch unterschrieben sind.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Wenn du es decodierst (base64), steht da: {"user_id": 123, "role": "admin"}.
Vorteil: Stateless. Der Server muss nicht in der Datenbank nachsehen ("Ist Session 123 noch gültig?"). Er prüft nur die Signatur. Das skaliert unendich.
Nachteil: Man kann es schwer widerrufen (Revocation Problem), bevor es abläuft.
2. Tokenization in LLMs (BPE)
Wie macht GPT aus Text Zahlen?
Algorithmus: Byte Pair Encoding (BPE).
Es sucht häufige Zeichenfolgen ("ing", "the", "sch").
"Hello World" -> [15496, 2159].
Warum wichtig?
Mathematik-Schwäche von LLMs kommt oft daher. "100" ist ein Token, "1" und "0" und "0" sind drei Tokens. Das Modell "sieht" die Zahl manchmal nicht richtig.
3. CSRF & Tokens
Um Formulare im Web zu schützen (CSRF Attack), nutzt man ein "Anti-CSRF Token".
Ein verstecktes Feld im Formular <input type="hidden" value="random123">.
Der Angreifer kann zwar einen Link schicken ("Klick hier für Geld"), aber er kennt das geheime Zufalls-Token nicht. Der Server lehnt die Anfrage ab.
4. Vertiefen
1. Opaque vs. Structured Tokens
- Opaque Token (Undurchsichtig): Eine zufällige Zeichenfolge (
s7f2k...). Nur der Server weiß, was sie bedeutet. Er muss bei jedem Request in der Datenbank nachsehen. Vorteil: Maximale Sicherheit, da der Client null Infos hat. - Structured Token (JWT (JSON Web Token)): Enthält die Infos direkt in sich selbst. Vorteil: Der Server spart sich den Datenbank-Check. In modernen Systemen kombiniert man beides: Das Frontend erhält ein JWT, aber für hochkritische Aktionen (z.B. Passwort ändern) wird ein Reference Token (Opaque) genutzt, das der Server sofort ungültig machen kann.
2. Token Revocation (Die Datenbank-Problem)
Das Problem von JWTs: Man kann sie nicht "löschen", bevor sie abgelaufen sind, weil sie "stateless" sind. Wenn ein User sein Handy verliert, ist das Token für den Finder noch 1 Stunde lang gültig. Lösung 1: Eine Blacklist in Redis führen (Token-IDs, die gesperrt sind). Nachteil: Damit wird das JWT wieder "stateful" und man verliert den Performance-Vorteil partially. Lösung 2: Extrem kurze Ablaufzeiten (Short Lived Tokens) von 5-10 Minuten nutzen und den User über Refresh-Tokens immer wieder unauffällig neu authentifizieren.
3. WordPiece & Tiktoken (Die AI-Mechanik)
Verschiedene KI-Modelle nutzen unterschiedliche "Tokenizer".
- BERT nutzt WordPiece.
- GPT-4 nutzt Tiktoken (eine sehr effiziente BPE-Variante). Ein wichtiger Faktor für Entwickler: Da die Context Window (z. B. 128k Tokens) begrenzt ist, musst du deine Texte vorher lokal "tokenisieren", um zu berechnen, ob sie noch in die Anfrage passen. Wenn dein System "RAG" (Retrieval Augmented Generation) nutzt, musst du Tokens sparen, um mehr relevante Dokumente als Kontext mitsenden zu können. Tokens sind die "Währung" der KI-Effizienz.
5. Prüfen
Refresh Token?
Ein Access Token lebt kurz (1 Stunde). Ein Refresh Token lebt lang (30 Tage). Wenn das Access Token abläuft, nutzt die App das Refresh Token, um ein neues zu holen. So muss sich der User nicht neu einloggen, aber ein gestohlenes Access Token richtet nur kurz Schaden an.Hardware Token?
Ein physisches Gerät (YubiKey, RSA SecurID), das alle 30 Sekunden einen Code anzeigt (OTP). Gilt als "Besitz"-Faktor in MFA.Token Bucket?
Ein Algorithmus für Rate Limiting. "Du darfst 5 Requests pro Sekunde machen." Man füllt Tokens in einen Eimer. Jeder Request kostet ein Token. Wenn leer -> Fehler 429.
Zusammenfassung
- Das Wort "Token" hat in der IT drei völlig verschiedene Bedeutungen. 1. Sicherheit (wie eine Eintrittskarte): Wenn du dich bei Google einloggst, gibt dir Google ein "Token" (ein langes Passwort). Damit darfst du Gmail öffnen. Du musst dein echtes Passwort...
- Auth Token (Bearer Token): bash curl -H "Authorization: Bearer abcd123..." https://api.github.com/user Wenn du das Token verlierst, kann jeder deinen Account nutzen (wie Bargeld).
Optionale Praxisaufgabe
- Erkläre Token in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Token relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Large Language Model (LLM) S3
Überblick: Stell dir den besten Autocomplete der Welt vor. Du tippst: "Der Himmel ist..." Handy sagt: "blau." Ein LLM (wie GPT) macht genau das Gleiche, nur viel schlauer. Es hat das ganze Internet gelesen. Es weiß nicht nur, dass der Himmel blau ist, sondern auch, wie man Python programmiert oder Gedichte schreibt. Es "denkt" nicht. Es berechnet nur Wahrscheinlichkeiten: "Welches Wort kommt statistisch gesehen als nächstes?"
Einfach erklärt: ChatGPT, Claude, Gemini. Use Cases: Zusammenfassen von langen Texten. Programmieren (Copilot). Übersetzen. Wichtig: Prompt Engineering. Wie man fragt, bestimmt die Qualität der Antwort.
Wissen LLMs die Wahrheit?
Nein. Sie kennen nur Wahrscheinlichkeiten. Wenn im Training oft stand "Die Erde ist eine Scheibe", wird das LLM das behaupten. Das nennt man Halluzination (selbstbewusstes Lügen).Was sind Parameter?
Die "Gehirnzellen". GPT-4 hat angeblich über 1 Billion (Trillion) Parameter. Je mehr Parameter, desto "schlauer" (aber auch langsamer und teurer).Warum "Large"?
Weil sie riesig sind (Gigabytes bis Terabytes). Man braucht Cluster von GPUs (Nvidia H100), um sie zu trainieren und zu betreiben.
Schritt 21 / 65
Session
Zustandsbehaftete Logins verstehen.
S1
Schritt 21 / 65
Session
Zustandsbehaftete Logins verstehen.
1. Verstehen
Das Gegenstück zum Cookie. Das Cookie liegt beim User ("Ich bin Nummer 5"). Die Session liegt auf dem Server (im Tresor). Dort steht: "Nummer 5 ist Max Mustermann, hat Admin-Rechte und ein iPhone im Warenkorb." Der User darf diese Daten nicht sehen oder ändern. Er hat nur die Nummer (Session ID). Wenn der User sich ausloggt, vernichtet der Server den Eintrag zu Nummer 5. Der Ausweis des Users ist jetzt wertlos.
Merksatz: Ein serverseitiger Datenspeicher, der temporär Informationen über die Interaktionen eines Benutzers während seines Besuchs auf einer Website speichert, verknüpft über eine Session-ID.
2. Anwenden
In PHP/Python:
$_SESSION['cart'] = 'iPhone'; (PHP)
request.session['user'] = 'Max' (Django)
Das Framework generiert automatisch die ID, setzt das Cookie und speichert die Daten in einer Datei (oder Datenbank).
Du musst dich um die Details nicht kümmern.
Praxisroutine
In der Praxis lernst du Session, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Storage Backend (File vs. Redis)
Standardmäßig speichern Frameworks Sessions als Dateien auf der Festplatte. Schlecht bei vielen Usern (Festplatte langsam). Schlecht bei mehreren Servern (Server B kennt die Datei von Server A nicht). Lösung: Redis oder Memcached. Schneller RAM-Speicher, auf den alle Server zugreifen können.
2. Session Fixation Attack
Hacker schickt dir einen Link: bank.com?PHPSESSID=hacker123.
Du klickst drauf und loggst dich ein.
Die Bank benutzt die ID hacker123 für deine Session.
Der Hacker kennt die ID ja schon. Er ist jetzt auch eingeloggt.
Schutz: Regenerate ID. Nach dem Login muss der Server sofort die alte ID wegwerfen und eine neue generieren.
3. Session Hijacking
Wenn der Hacker dein Session-Cookie klaut (via XSS oder unverschlüsseltem WLAN), ist er du. Gegenmaßnahmen:
- HTTPS erzwingen (Secure Flag).
- IP-Bindung (Schwierig, da Handy-IPs oft wechseln).
- User-Agent prüfen (Wenn sich Browser plötzlich von Chrome zu Firefox ändert -> Verdächtig -> Logout).
4. Vertiefen
1. Deserialisierungs-Vulnerabilities
Sessions speichern oft komplexe Objekte (z.B. ein User-Objekt mit Rechten). Damit das auf die Festplatte oder in Redis passt, muss es in einen String umgewandelt werden (Serialisierung).
In Python nutzt man oft pickle, in Java die Standard-Serialisierung.
Gefahr: Wenn ein Angreifer es schafft, den Inhalt des Session-Speichers zu manipulieren (z.B. durch einen Fehler im Redis-Zugang), kann er manipulierten Code einschleusen. Sobald der Server die Session wieder einliest (Deserialisierung), wird der Schadcode mit Server-Rechten ausgeführt.
Sichere Web-Frameworks nutzen heute fast nur noch JSON oder signierte Strings für Sessions, da diese keine Logik ausführen können.
2. Session Ghosting & Race Conditions
Was passiert, wenn ein User zwei Tabs gleichzeitig offen hat und in beiden Tabs etwas in den Warenkorb legt? Tab A sendet Request 1 -> Server liest Session -> Fügt "Apfel" hinzu. Tab B sendet Request 2 -> Server liest Session -> Fügt "Birne" hinzu. In einem schlechten System "schlägt" das Speichern von Tab B das Speichern von Tab A (Last Write Wins). Der Apfel ist weg. Fortgeschrittene Session-Manager nutzen Optimistic Locking: Beim Speichern wird geprüft, ob sich die Session-Datenbank während der Verarbeitung geändert hat. Wenn ja, muss der Request wiederholt werden.
3. Rolling Sessions & Sliding Window TTL
Wie lange bleibt eine Session gültig?
- Fixed TTL: Nach 30 Minuten wirst du ausgeloggt, egal ob du gerade arbeitest oder nicht (nervig).
- Rolling TTL (Sliding Window): Jedes Mal, wenn der User eine Seite aufruft, setzt der Server den Ablauf-Timer zurück auf 30 Minuten.
Technisch bedeutet das: Bei jedem Klick muss der Server ein
EXPIREKommando an die Redis-Datenbank schicken. Das erzeugt bei Millionen Usern eine enorme Last auf dem Redis. Große Plattformen aktualisieren den Timer daher oft nur "ungefähr" (z.B. nur alle 5 Minuten oder bei wichtigen Aktionen), um die Datenbank zu entlasten.
5. Prüfen
JWT vs. Session?
Session = State auf Server (Server bestimmt Logout). JWT = State im Token beim Client (Server kann Logout schwer erzwingen). Session ist sicherer und einfacher, JWT ist skalierbarer für Microservices.Timeout?
Sessions sollten kurzlebig sein (z. B. 30 Min Inaktivität). Banken machen 5 Min. Erhöht Sicherheit drastisch.Sticky Session?
Wenn Sessions nur im RAM von Server 1 liegen, muss der Load Balancer den User immer zu Server 1 schicken. Fällt Server 1 aus, sind alle ausgeloggt. Besser: Redis.
Zusammenfassung
- Das Gegenstück zum Cookie. Das Cookie liegt beim User ("Ich bin Nummer 5"). Die Session liegt auf dem Server (im Tresor). Dort steht: "Nummer 5 ist Max Mustermann, hat Admin-Rechte und ein iPhone im Warenkorb." Der User darf diese Daten nicht sehen oder...
- In PHP/Python: $SESSION['cart'] = 'iPhone'; (PHP) request.session['user'] = 'Max' (Django) Das Framework generiert automatisch die ID, setzt das Cookie und speichert die Daten in einer Datei (oder Datenbank). Du musst dich um die Details nicht kümmern.
Optionale Praxisaufgabe
- Erkläre Session in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Session relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Cookie (HTTP Cookie) S1
Überblick: HTTP hat Alzheimer. Wenn du Seite A lädst und dann Seite B, weiß der Server nicht mehr, wer du bist. Lösung: Der Server gibt dir beim ersten Besuch einen kleinen Zettel (Cookie) mit. "Du bist User 123." Dein Browser speichert den Zettel. Bei jedem weiteren Klick auf dieser Seite zeigt dein Browser den Zettel automatisch vor. Server: "Ah, User 123 ist wieder da." Ohne Cookies gäbe es keinen Login und keinen Warenkorb.
Einfach erklärt: In den DevTools (F12) - Application - Cookies. Du siehst Name (sessionid) und Wert (xyz...). In PHP: setcookie("user", "Max", time()+3600); Achtung: Cookies sind auf 4KB begrenzt. Speichere dort keine großen Daten!
Session vs. Persistent?
Session-Cookie: Hat kein Ablaufdatum. Wird gelöscht, wenn Browser geschlossen wird. Persistent-Cookie: HatExpires=2025. Bleibt auch nach Neustart da ("Angemeldet bleiben").Kann ich Cookies löschen?
Ja, der User hat die volle Kontrolle. Ein Entwickler darf sich nie darauf verlassen, dass ein Cookie für immer da bleibt.Signed Cookies?
Um Manipulation zu verhindern (user=adminfälschen), signiert das Framework das Cookie (user=admin.HashedSignature). Wenn der User es ändert, stimmt die Signatur nicht mehr -> Server verwirft es.
Schritt 22 / 65
Datenbank
Daten dauerhaft speichern.
S1
Schritt 22 / 65
Datenbank
Daten dauerhaft speichern.
1. Verstehen
Eine Datenbank ist ein digitaler Aktenschrank, in dem Informationen extrem ordentlich sortiert sind. Stell dir eine Excel-Tabelle vor, aber viel mächtiger. Dort speichert Facebook alle deine Freunde. Amazon alle deine Bestellungen. Deine Bank alle Kontobewegungen. Ohne Datenbanken müsste man alles in Textdateien schreiben – und das Suchen würde ewig dauern.
Merksatz: Ein elektronisches System zur strukturierten Speicherung und schnellen Abfrage von großen Datenmengen.
Lernbruecke für Anfänger
Wenn du bei Datenbank ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Daten dauerhaft speichern. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Die meisten Datenbanken nutzen eine Sprache namens SQL (Structured Query Language), um mit ihnen zu reden.
Ein Befehl sieht so aus:
SELECT * FROM users WHERE age > 18;
("Gib mir alle Benutzer, die älter als 18 sind").
Man unterscheidet grob:
- Relationale Datenbanken (SQL): Alles ist in strengen Tabellen organisiert (Zeilen und Spalten). Wie Excel. (Beispiele: MySQL, PostgreSQL, Microsoft SQL Server).
- NoSQL Datenbanken: Viel freier. Man speichert Daten als Dokumente (wie JSON). Perfekt für unstrukturierte Daten. (Beispiele: MongoDB, Redis).
3. Technisch einordnen
1. ACID (Die 4 heiligen Regeln)
Bei Bank-Transaktionen darf nichts schiefgehen. Wenn Geld von Konto A abgebucht wird, muss es auf Konto B ankommen. Wenn der Strom ausfällt, darf das Geld nicht verschwinden. Dafür gibt es ACID:
- Atomicity: Ganz oder gar nicht. (Keine halben Buchungen).
- Consistency: Die Datenbank bleibt immer logisch korrekt.
- Isolation: Parallele Transaktionen stören sich nicht.
- Durability: Wenn "Gespeichert" gesagt wurde, ist es auch nach einem Stromausfall noch da.
2. Indexing
Wie findet eine DB einen Namen unter 1 Milliarde Einträgen in 0,001 Sekunden? Sie nutzt einen Index (wie das Inhaltsverzeichnis in einem Buch). Statt alle Seiten zu lesen ("Full Table Scan"), schaut sie im Index nach "Müller -> Seite 4567". Der Index ist meist ein B-Tree (balancierter Baum).
4. Vertiefen
1. The CAP Theorem
Das absolute Fundament für große, verteilte Datenbanken (z.B. MongoDB Cluster oder Cassandra). Es besagt, dass du in vernetzten Systemen von drei Eigenschaften immer nur maximal zwei haben kannst:
- Consistency: Alle Nodes (Server) lesen in derselben Millisekunde denselben neuen Wert.
- Availability: Die Datenbank stürzt niemals ab und kann immer Queries beantworten.
- Partition Tolerance: Die Server können weiterarbeiten, wenn ihr internes Netzwerkkabel zerschnitten wird ("Split Brain"). Wenn das Netzwerk ausfällt (P ist ein Muss), hast du die Wahl: Bleibst du online (A), antwortest aber vielleicht mit falschen, asynchronen Daten (kein C)? Oder fährst du den Server lieber hart herunter und wirfst 500er Errors, um garantiert keine inkonsistenten Daten zu lügen (C)? (Daher spricht man von AP oder CP Systemen).
2. ACID vs. BASE
Relationale DBs pochen auf ACID (Alles oder Nichts, absolut fehlerfreie Buchungen). Die Performance leidet bei Scale, wegen des starken Lockings. NoSQL DBs antworten darauf oft mit BASE (Basically Available, Soft state, Eventual consistency). Anstatt Daten beim Schreiben 100% quer über alle Cluster auf der ganzen Welt sofort zu verriegeln, schlüpft der Save rein, und der Node meldet "Okay!". Im Hintergrund synchronisieren sich die Nodes ("Eventual Consistency"). Das heißt, wenn ein User in Japan den Post liket, und ein Freund in Brasilien ruft 1 Sekunde später den Post ab, steht dort vielleicht noch "0 Likes", bis die Synchronisation "irgendwann" (Eventual) nachrutscht. Für Social Media ist BASE perfekt (Speed), für das Aktien/Bankenwesen absolutes Gift.
3. Write-Ahead Logging (WAL)
Wie garantiert Postgres "Durability" (D in ACID), dass nichts verloren geht bei Stromausfall?
Jedes Mal wenn du etwas in die DB in Postgres schreibst, wird diese Zeile nicht sofort tief in die komplexen verschachtelten Speicher-Zellen der .mdf-Datei auf der HDD gespeichert (das Positionieren der Schreibköpfe dafür würde dauern).
Stattdessen schreibt Postgres die Aktion als rohen Text Row x=5 stumpf asynchron ans Ende einer Endlos-Logdatei (WAL). Ein simples Append ans Ende geht auf der Platte in Nanosekunden ("Sequential Write"). Fällt nun der Strom aus, liest Postgres beim Hochbooten einfach ab dem Crash von unten nach oben diese WALs ("Was ist zuletzt alles passiert, aber noch nicht richtig sortiert abgeheftet worden?") und spielt (re-played) den RAM-Zustand exakt wieder ein, bevor der RAM ausging.
5. Prüfen
Was ist der Unterschied zwischen einer Datenbank und einer Excel-Tabelle?
Excel ist für Menschen (visuell). Datenbanken sind für Computer (massiv skalierbar, multiuser-fähig, sicher). Excel stürzt bei 1 Mio. Zeilen ab, Datenbanken lachen darüber.Warum nutzt man nicht für alles NoSQL?
Weil SQL-Datenbanken (Tabellen) extrem gut darin sind, Beziehungen darzustellen ("Kunde hat Bestellung hat Artikel"). NoSQL ist flexibler, aber oft schlechter bei komplexen Verknüpfungen (Joins).Was passiert, wenn zwei Leute gleichzeitig denselben Datensatz ändern?
Die Datenbank sperrt ihn kurzzeitig ("Locking"). Einer muss warten, bis der andere fertig ist, damit keine Daten überschrieben werden (Concurrency Control).
Zusammenfassung
- Eine Datenbank ist ein digitaler Aktenschrank, in dem Informationen extrem ordentlich sortiert sind. Stell dir eine Excel-Tabelle vor, aber viel mächtiger. Dort speichert Facebook alle deine Freunde. Amazon alle deine Bestellungen. Deine Bank alle...
- Die meisten Datenbanken nutzen eine Sprache namens SQL (Structured Query Language), um mit ihnen zu reden. Ein Befehl sieht so aus: SELECT FROM users WHERE age 18; ("Gib mir alle Benutzer, die älter als 18 sind").
Optionale Praxisaufgabe
- Erkläre Datenbank in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Datenbank relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Computer S1
Überblick: Ein Computer ist ein Gerät, das Daten nach Anweisungen verarbeitet. Er nimmt Eingaben entgegen, rechnet oder entscheidet, speichert Ergebnisse und gibt Ausgaben zurück. Smartphones, Laptops, Server und viele Maschinen enthalten Computer.
Einfach erklärt: Im Alltag nutzt du Computer zum Schreiben, Lernen, Kommunizieren, Spielen, Automatisieren oder Analysieren. Technisch arbeiten dabei Prozessor, Arbeitsspeicher, Speichergeräte, Betriebssystem und Software zusammen. Wenn ein Teil ausfaellt oder überlastet ist, wirkt das ganze System langsam oder instabil.
Tiefer verstanden: Computer arbeiten digital mit Bits und Bytes. Die CPU fuehrt Befehle aus, RAM haelt aktive Daten bereit, SSDs speichern dauerhaft, und das Betriebssystem verwaltet Prozesse, Dateien, Treiber und Rechte. Netzwerke verbinden Computer mit anderen Systemen.
Praxisgrenze: Ein Computer ist nicht "intelligent", nur weil er schnell rechnet. Er folgt Modellen, Daten und Programmen. Fehler entstehen oft durch falsche Eingaben, kaputte Annahmen, Ressourcenlimits oder unsichere Konfiguration. Gute Diagnose trennt Hardware, Betriebssystem, Software und Netzwerk.
Was macht ein Computer grundsaetzlich?
Er verarbeitet Eingaben nach Anweisungen und erzeugt Ausgaben oder gespeicherte Ergebnisse.Warum braucht ein Computer ein Betriebssystem?
Das Betriebssystem verwaltet Hardware, Dateien, Programme, Speicher, Rechte und Schnittstellen.Was ist eine typische Diagnosefrage?
Ist das Problem Hardware, Betriebssystem, Software, Netzwerk oder Bedienung?
Software S1
Überblick: Software ist der Teil eines Computers, den man nicht anfassen kann: Programme, Apps, Betriebssysteme, Treiber und Skripte. Hardware ist das Gerät, Software sagt dem Gerät, was es tun soll. Ohne Software wäre ein Computer nur Elektronik ohne Aufgabe.
Einfach erklärt: Ein Browser, ein Textprogramm, ein Spiel, eine App und ein Serverdienst sind Software. Nutzer installieren oder öffnen sie, Entwickler schreiben und pflegen sie. Unternehmen achten auf Updates, Lizenzen, Sicherheit, Kompatibilitaet und Support.
Tiefer verstanden: Software kann aus Quellcode, Bibliotheken, Konfigurationsdateien, Assets und Build-Artefakten bestehen. Moderne Systeme trennen oft Frontend, Backend, Datenbank, Infrastrukturcode und Automatisierungen. Qualität entsteht durch Tests, Reviews, Versionierung, Monitoring und klare Architektur.
Praxisgrenze: Software altert, auch wenn sie nicht angefasst wird: Abhaengigkeiten bekommen Sicherheitslücken, Plattformen ändern sich, Daten wachsen und Nutzeranforderungen verschieben sich. Deshalb ist Wartbarkeit wichtiger als nur "es läuft gerade". Schlechte Update- und Backup-Prozesse machen harmlose Änderungen riskant.
Was unterscheidet Software von Hardware?
Hardware ist das physische Gerät. Software sind Programme, Regeln und Daten, die auf dieser Hardware laufen.Warum braucht Software Updates?
Updates beheben Fehler, Sicherheitslücken, Kompatibilitaetsprobleme und erweitern Funktionen.Was ist eine typische Praxisfalle?
Nur auf sichtbare Features zu achten und Wartung, Tests, Lizenzen und Sicherheit zu ignorieren.
Schritt 22.1 / 65
PostgreSQL
Eine professionelle relationale Datenbank verstehen.
S1
Schritt 22.1 / 65
PostgreSQL
Eine professionelle relationale Datenbank verstehen.
1. Verstehen
Einsteiger-Brücke: Wenn du PostgreSQL zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. PostgreSQL ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
PostgreSQL ist eine leistungsfähige relationale Datenbank.
Merksatz: PostgreSQL ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. PostgreSQL ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
PostgreSQL speichert Daten dauerhaft in Tabellen. Eine App kann dort Nutzer, Bestellungen, Termine oder Einstellungen speichern.
Typische Anfängerfrage: Woran erkenne ich PostgreSQL im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei PostgreSQL immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: PostgreSQL steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
PostgreSQL unterstützt SQL, Transaktionen, Constraints, Indizes, Joins, Views und viele Datentypen.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird PostgreSQL zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob PostgreSQL funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Experten achten auf Query-Pläne, Indizes, Locks, Isolation, Migrationsstrategie, Backups, Replikation, Extensions und Monitoring.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre PostgreSQL ohne Fachsprache.
In einfachen Worten: PostgreSQL ist eine leistungsfähige relationale Datenbank. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem PostgreSQL praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und PostgreSQL ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem datenbank und sql. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du PostgreSQL zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf....
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. PostgreSQL ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt....
- Technik-Nachtrag: Prüfe bei PostgreSQL immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre PostgreSQL in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem PostgreSQL relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 22.2 / 65
MySQL
Eine verbreitete relationale Web-Datenbank einordnen.
S1
Schritt 22.2 / 65
MySQL
Eine verbreitete relationale Web-Datenbank einordnen.
1. Verstehen
Einsteiger-Brücke: Wenn du MySQL zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. MySQL ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
MySQL ist eine verbreitete relationale Datenbank, besonders im Webhosting und bei vielen Webanwendungen.
Merksatz: MySQL ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. MySQL ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
MySQL speichert strukturierte Daten in Tabellen und wird oft mit PHP, WordPress oder klassischen Webapps genutzt.
Typische Anfängerfrage: Woran erkenne ich MySQL im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei MySQL immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: MySQL steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Wichtig sind Tabellen, Primärschlüssel, Fremdschlüssel, Indizes, Joins, Transaktionen und Backups.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird MySQL zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob MySQL funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Tiefe Praxis umfasst Storage Engines, Replikation, Isolation, Slow Query Logs, Zeichensätze, Migrationen und Betriebssicherheit.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre MySQL ohne Fachsprache.
In einfachen Worten: MySQL ist eine verbreitete relationale Datenbank, besonders im Webhosting und bei vielen Webanwendungen. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem MySQL praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und MySQL ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem datenbank und sql. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du MySQL zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. MySQL ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technik-Nachtrag: Prüfe bei MySQL immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre MySQL in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem MySQL relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 22.3 / 65
ORM
Programmobjekte und Datenbanktabellen verbinden.
S1
Schritt 22.3 / 65
ORM
Programmobjekte und Datenbanktabellen verbinden.
1. Verstehen
Einsteiger-Brücke: Wenn du ORM zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. ORM ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
ORM bedeutet Object-Relational Mapping. Es verbindet Programmobjekte mit Datenbanktabellen.
Merksatz: ORM ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. ORM ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Ein ORM erlaubt, Datenbankeinträge wie Objekte im Code zu behandeln, statt jede SQL-Abfrage selbst zu schreiben.
Typische Anfängerfrage: Woran erkenne ich ORM im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei ORM immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: ORM steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
ORMs beschleunigen Entwicklung, können aber versteckte Abfragen, N+1-Probleme und Performancefallen erzeugen.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird ORM zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob ORM funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Experten prüfen generiertes SQL, Lazy Loading, Transaktionen, Migrationen, Locking, Batch-Operationen und Grenzen der Abstraktion.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre ORM ohne Fachsprache.
In einfachen Worten: ORM bedeutet Object-Relational Mapping. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem ORM praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und ORM ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem datenbank und sql. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du ORM zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. ORM ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technik-Nachtrag: Prüfe bei ORM immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre ORM in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem ORM relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 23 / 65
SQL
Daten strukturiert abfragen.
S1
Schritt 23 / 65
SQL
Daten strukturiert abfragen.
1. Verstehen
SQL (gesprochen "Es-Kju-El" oder "Sequel") ist die Sprache, mit der man mit Datenbanken redet. Stell dir die Datenbank als riesiges Archiv vor. Der Archivar versteht nur SQL. Du sagst: "Gib mir alle Kunden aus Berlin!" (auf SQL). Der Archivar flitzt los und bringt dir die Liste.
Du kannst damit:
- Create (Daten anlegen)
- Read (Daten lesen)
- Update (Daten ändern)
- Delete (Daten löschen) Das nennt man CRUD.
Merksatz: Die Standardsprache zum Verwalten und Abfragen von relationalen Datenbanken.
2. Anwenden
Die Grammatik ist fast wie Englisch.
Beispiel: Wir haben eine Tabelle users.
Alles lesen:
SELECT * FROM users;("Wähle alles von Benutzern")Filtern:
SELECT name FROM users WHERE age > 18;("Wähle den Namen von Benutzern, wo das Alter größer als 18 ist")Neuen User anlegen:
INSERT INTO users (name, age) VALUES ('Max', 25);
Das lernst du oft schon am ersten Tag im Informatik-Studium oder in der Ausbildung.
Praxisroutine
In der Praxis lernst du SQL, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Joins (Die Superkraft)
SQL kann Daten aus verschiedenen Tabellen verknüpfen.
Tabelle A: Kunden. Tabelle B: Bestellungen.
SELECT * FROM kunden INNER JOIN bestellungen ON kunden.id = bestellungen.kunden_id;
Das klebt die passende Bestellung an den passenden Kunden. NoSQL-Datenbanken tun sich damit oft schwer.
2. SQL Injection (Die Gefahr)
Wenn Programmierer schlampig sind, nehmen sie Eingaben von Nutzern direkt in den SQL-Befehl auf.
Hacker geben dann im Login-Feld ein: ' OR '1'='1.
Der Befehl wird zu: SELECT * FROM users WHERE password = '' OR '1'='1';
Da 1 immer 1 ist, ist die Bedingung WAHR. Der Hacker ist eingeloggt, ohne Passwort.
Schutz: Prepared Statements.
4. Vertiefen
1. Das ACID-Prinzip (Transaktionen)
Warum vertrauen Banken auf SQL? Wegen ACID:
- Atomicity (Atomarität): Ganz oder gar nicht. Wenn Geld von Konto A abgebucht, aber bei Konto B nicht gutgeschrieben werden kann (Serverabsturz), wird alles rückgängig gemacht.
- Consistency (Konsistenz): Die Datenbank bleibt immer in einem gültigen Zustand (Regeln wie "Kontosatnd darf nicht negativ sein" werden erzwungen).
- Isolation (Isolation): Wenn zwei Leute gleichzeitig Geld überweisen, stören sie sich nicht gegenseitig.
- Durability (Dauerhaftigkeit): Einmal gespeichert (Commit), sind die Daten sicher, selbst wenn danach der Strom ausfällt.
2. Execution Plans (Der "Explain" Befehl)
SQL ist deklarativ: Du sagst dem Server, was du willst. Der Server muss entscheiden, wie er es holt.
Dazu nutzt er einen Query Optimizer. Mit dem Befehl EXPLAIN SELECT ... kannst du dem Server bei der Arbeit zuschauen.
Er berechnet: "Soll ich erst sortieren oder erst filtern? Nutze ich den Index oder muss ich die ganze Tabelle lesen (Full Table Scan)?" Ein guter Entwickler schaut ständig auf diese Pläne, um langsame Queries zu finden, bevor sie das System im Betrieb lahmlegen.
3. Window Functions & CTEs
Moderne SQL-Anwendungen verlassen einfache SELECTs.
- CTEs (Common Table Expressions): Mit
WITHkannst du temporäre Ergebnistabellen bauen, was den Code viel lesbarer macht als verschachtelte Subqueries. - Window Functions: Funktionen wie
RANK()oderOVER(). Sie erlauben Berechnungen über eine Gruppe von Zeilen hinweg (z. B. "Zeige mir den Umsatz jedes Verkäufers im Vergleich zum Durchschnitt seiner Abteilung"), ohne dass man die Daten mühsam in der App-Logik zusammenrechnen muss. Das spart massiv Rechenleistung im Backend.
5. Prüfen
Ist SQL eine Programmiersprache?
Jain. Es ist eine "deklarative" Sprache. Du sagst was du willst ("Gib mir die Daten"), nicht wie der Computer es machen soll (Schleifen, Variablen). Es ist Turing-vollständig, aber man schreibt damit keine Apps.Was bedeutet "Relational"?
Dass Daten in Beziehung zueinander stehen. "Kunde A gehört zu Bestellung B". Diese Beziehungen werden durch Tabellen und Schlüssel (IDs) abgebildet.Warum ist SQL Injection so gefährlich?
Weil ein Hacker damit die komplette Datenbank stehlen oder löschen kann ("DROP TABLE users"). Es ist immer noch eine der häufigsten Sicherheitslücken im Web.
Zusammenfassung
- SQL (gesprochen "Es-Kju-El" oder "Sequel") ist die Sprache, mit der man mit Datenbanken redet. Stell dir die Datenbank als riesiges Archiv vor. Der Archivar versteht nur SQL. Du sagst: "Gib mir alle Kunden aus Berlin!" (auf SQL). Der Archivar flitzt los und...
- Die Grammatik ist fast wie Englisch. Beispiel: Wir haben eine Tabelle users.
Optionale Praxisaufgabe
- Erkläre SQL in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem SQL relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 24 / 65
Redis
Cache, Queue und schnelle Zwischenablage nutzen.
S1
Schritt 24 / 65
Redis
Cache, Queue und schnelle Zwischenablage nutzen.
1. Verstehen
Normale Datenbanken (MySQL) speichern Daten auf der Festplatte (HDD/SSD). Das ist sicher, aber langsam. Redis speichert Daten im RAM (Arbeitsspeicher). Das ist blitzschnell (Millionen Anfragen pro Sekunde). Nachteil: Wenn der Strom ausfällt, ist der RAM leer (Daten weg). Deshalb nutzt man Redis meistens als Cache (Zwischenspeicher) für Daten, die man schnell braucht, aber notfalls neu berechnen kann (z. B. "Warenkorb" oder "Top 10 Liste").
Merksatz: Eine extrem schnelle In-Memory-Datenbank, die meist als Cache oder Message Broker verwendet wird.
:level0
Lernbruecke: Redis ist ein sehr schneller Zwischenspeicher. Man kann es sich wie eine temporaere Schluessel-Wert-Ablage vorstellen.
2. Anwenden
Beispiel: Twitter Timeline. Wenn du Twitter öffnest, muss es nicht 1 Milliarde Tweets durchsuchen. Deine Timeline liegt fertig berechnet in Redis. Zack, sie ist sofort da. Wenn du Twitter schließt, wird sie vielleicht gelöscht (LRU - Least Recently Used), um Platz für andere zu machen.
:level1
Praxisbeispiel: Ein Backend speichert das Ergebnis einer teuren API-Anfrage für 60 Sekunden. Beim nächsten gleichen Request kommt die Antwort aus Redis statt aus der langsamen Quelle.
Praxisroutine
In der Praxis lernst du Redis, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Persistenz
Obwohl In-Memory, kann Redis Daten speichern. Es macht alle paar Sekunden einen "Snapshot" auf die Festplatte (RDB). Oder es schreibt jeden Befehl mit (AOF - Append Only File). So überleben die Daten auch einen Neustart (meistens zumindest).
2. Datenstrukturen
Redis ist nicht nur "Key-Value" ("Name = Max"). Es versteht Listen, Sets (Mengen) und Hashes. Du kannst sagen: "Gib mir die Top 5 aus dieser Liste". Redis macht das in Nanosekunden, weil die Liste im RAM sortiert vorliegt.
:level2Technisch wird Redis für Cache, Queue und Session-Store genutzt. Wichtig sind Ablaufzeiten, Cache-Miss-Verhalten und die Frage, ob Daten verloren gehen dürfen.
4. Vertiefen
1. Single-Threaded Event Loop (Der asynchrone Tanz)
Die wohl schockierendste Tatsache: Redis läuft intern auf einem einzigen Thread (epoll/kqueue).
Während relationale DBs pro Connect einen Linux/Java-Thread clonen, verarbeitet Redis nacheinander alle Memory-Ops. Warum skaliert es auf 100.000 QPS? Weil RAM-Zugriffe für die CPU unfassbar schnell sind (~100 Nanosekunden). Der Wechsel von Betriebssystem-Kontexten (Context Switching) und Locking-Mechanismen für Parallelität (Mutex) würde das System hart in Zeitstrafen lähmen.
Der Single-Thread garantiert dir "Isolation/Atomizität": Ein INCR counter (Zähler hochsetzen) überschneidet sich nie mit einem anderen Request. Thread-Safety und Race Conditions sind in Redis by Design völlig ausgeschaltet, ohne teure Locking-Syntax zu bemühen.
2. AOF Rewrite und Fork() (Memory Pitfalls)
Redis persisitiert Daten mit AOF (Append Only File). Jeder Schreib-Befehl geht als String (SET user "Max") ans Ende eines Server-Logs.
Das Log wächst absurd an. Redis nutzt AOF-Rewriting, um das Log zu stauchen.
Es erstellt per Linux fork() Modus einen identischen Klon-Prozess seiner eigenen RAM-Seiten (Copy-on-Write). Der Klon-Prozess schaut in den RAM und schreibt ein brandneues, sauberes AOF-File (nur Endzustände) parallel auf die SSD.
Geheimwaffe: Wenn während des 2-minütigen Klonens plötzliche Schreib-Spitzen passieren, beginnt Linux massenhaft RAM Pages physisch zu duplizieren. Ein Redis, das 30 GB auf einem 32 GB Server belebt, reißt plötzlich den Klon-Prozess bei Last mit 60GB RAM an und wird vom Kernel lautstark hingerichtet (OOM-Killer).
3. Redis Sentinel & Cluster (Distributed Hashing)
Ein normaler Redis Server ist ab 50 GB voll.
Für echte "Web-Scale" Cloud bedarf es Split (Partitioning/Sharding) -> Redis Cluster.
Redis teilt seinen Keyspace gnadenlos in 16.384 Hash Slots. Wirft man SET user123 ein, hasht der Client den Key = Hash-Slot 5000. Server B sagt dem SDK: "Ich halte Slot 5000, sende es mir!".
Wenn ein Server abbrennt, wählt Redis Sentinel (eine Gossip-Protokoll P2P Miliz-Software im Hintergrund) vollautomatisch binnen 3 Sekunden asynchron einen von mehreren read-only Slave-Containern zum neuen Warlord (Master) hoch. Split-Brain Bugs müssen dabei durch Majority-Quorums (Knotenanzahl) unterbunden werden, damit zwei Leader in Netz-Partitionen nicht synchron schreiben.
5. Prüfen
Ersetzt Redis meine SQL-Datenbank?
Meistens nein. SQL ist für strukturierte, wichtige Daten (Rechnungen). Redis ist für schnelle, flüchtige Daten (Sessions). Sie sind ein gutes Team.Was heißt "Remote Dictionary Server"?
Das ist die Abkürzung Re-Di-S. Ein "Dictionary" (Wörterbuch) ist technisch eine Key-Value-Liste.Warum nicht einfach mehr RAM für MySQL?
MySQL nutzt RAM auch als Cache (Buffer Pool). Aber Redis ist speziell dafür optimiert und kann Dinge (z. B. Geodaten-Berechnung, Pub/Sub), die MySQL nicht so effizient kann.
Zusammenfassung
- Normale Datenbanken (MySQL) speichern Daten auf der Festplatte (HDD/SSD). Das ist sicher, aber langsam. Redis speichert Daten im RAM (Arbeitsspeicher). Das ist blitzschnell (Millionen Anfragen pro Sekunde). Nachteil: Wenn der Strom ausfällt, ist der RAM leer...
- Beispiel: Twitter Timeline. Wenn du Twitter öffnest, muss es nicht 1 Milliarde Tweets durchsuchen. Deine Timeline liegt fertig berechnet in Redis. Zack, sie ist sofort da. Wenn du Twitter schließt, wird sie vielleicht gelöscht (LRU - Least Recently Used), um...
- Technisch wird Redis für Cache, Queue und Session-Store genutzt. Wichtig sind Ablaufzeiten, Cache-Miss-Verhalten und die Frage, ob Daten verloren gehen dürfen.
Optionale Praxisaufgabe
- Erkläre Redis in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Redis relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
RAM S1
Überblick: RAM ist das Kurzzeitgedächtnis deines Computers. Alles, was du gerade jetzt machst (diese Webseite lesen, Musik hören), liegt im RAM. Es ist extrem schnell, aber vergesslich. Sobald du den Strom ausschaltest, ist der RAM leer. Deshalb musst du deine Hausarbeit speichern (auf die Festplatte schreiben), bevor du den PC herunterfährst.
Einfach erklärt: Wie viel RAM brauchst du? 8 GB: Standard für Surfen und Office. 16 GB: Gut für Gaming und Fotobearbeitung. 32 GB+: Für Videoschnitt und Profi-Anwendungen.
Warum speichert man nicht einfach alles im RAM?
1. Weil alles weg wäre, wenn der Strom ausfällt. 2. Weil RAM viel teurer ist als SSD-Speicher (pro Gigabyte).Was bedeutet "Chrome frisst RAM"?
Jeder offene Tab in Chrome ist ein eigener Prozess. Das ist sicher (wenn einer abstürzt, lebt der Rest weiter), kostet aber viel Arbeitsspeicher.Was ist der Unterschied zu VRAM?
VRAM (Video RAM) sitzt auf der Grafikkarte. Er ist speziell dafür optimiert, riesige Texturen und 3D-Modelle für Spiele zu speichern.
Schritt 25 / 65
Cache
Wiederholte Arbeit vermeiden.
S1
Schritt 25 / 65
Cache
Wiederholte Arbeit vermeiden.
1. Verstehen
Ein Cache (gesprochen "Käsch") ist wie deine Hosentasche. Wenn du handwerkerst, hast du dein Werkzeug im Keller (Festplatte/Server). Das dauert lange zu holen. Die Dinge, die du jetzt gerade oft brauchst (Schraubenzieher), steckst du in die Hosentasche (Cache). Da greifst du blitzschnell drauf zu.
- Browser-Cache: Speichert Bilder von Webseiten, damit sie beim nächsten Besuch nicht neu geladen werden müssen.
- CPU-Cache: Speichert Zahlen, mit denen der Prozessor gerade rechnet.
Merksatz: Ein schneller Zwischenspeicher für Daten, die oft benötigt werden.
2. Anwenden
"Leeren Sie mal Ihren Cache!" Das ist der Standard-Tipp vom Support. Warum? Manchmal hat der Cache alte Daten. Die Webseite hat ein neues Design, aber dein Browser zeigt noch das alte Bild aus der Hosentasche (Cache), weil er denkt "Das kenne ich schon". Cache leeren zwingt ihn, neu in den Keller zu gehen und die frischen Daten zu holen.
Shortcut: Strg + F5 (Windows) oder Cmd + Shift + R (Mac) lädt die Seite ohne Cache neu.
Praxisroutine
In der Praxis lernst du Cache, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Cache Eviction (Verdrängung)
Der Cache ist klein und teuer. Wenn er voll ist, muss was raus. Aber was?
- LRU (Least Recently Used): Wirf das raus, was am längsten nicht benutzt wurde. (Standard).
- FIFO (First In, First Out): Was zuerst drin war, fliegt zuerst raus.
- LFU (Least Frequently Used): Was am seltensten benutzt wird, fliegt raus.
2. Cache Invalidation
Das schwerste Problem der Informatik: "Wann sind Daten ungültig?" Wenn du auf Facebook dein Profilbild änderst, muss der Cache auf allen Servern weltweit wissen: "Das alte Bild ist tot, hol das neue!". Wenn das nicht klappt, sehen Freunde noch tagelang dein altes Bild.
4. Vertiefen
1. Die CPU Memory Hierarchy
Moderne Prozessoren verhungern quasi an Bandbreite, weil Festplatten und RAM im Vergleich zum Rechenkern lachhaft langsam sind. Um die Cycles (CPU-Zyklen) nicht warten zu lassen, existiert ein extremer Hierarchie-Aufwand in Silicon (SRAM).
- L1 Cache: Das kleinste Gehirn. Direkt neben dem Rechenkern (etwa 64 KB je Core). Nanosekunden-Bereich. Fasst die nächste Befehlszeile der Loop.
- L2 Cache: Größer (ca. 1 MB pro Core). Ein Back Up für L1 Misses.
- L3 Cache: Sehr groß (bis 64 MB und mehr). Geteilt zwischen allen Cores eines Chips. Ein CPU-L3-Cache-Miss kostet extrem viel Zeit (ca. 100+ Taktzyklen Stagnation, weil man über den Mainboard-Bus den langsamen DDR-RAM kontaktieren muss). Die Wissenschaft der Compiler-Architektur konzentriert sich oft pur auf "Data Locality", also Daten so im Speicher auszurichten, dass der Chip sie pre-fetchen und den L1-Cache intelligent bestücken kann.
2. Verteilter Cache & Redis
Im Web Backend nutzt man sogenannte Distributed In-Memory Caches wie Redis oder Memcached, oft im Zusammenspiel mit einer viel gravideren relationalen Datenbank (PostgreSQL).
Lieferte die DB nach einem teuren 3-Sekunden Query (JOIN über tausende Sales-Daten) die Top 10 Produkte, speichert das Backend das Resultat formatiert in Redis (SET top10 "produkte").
Die nächsten 10.000 User in der Minute kontaktieren nicht mehr Postgres, das Backend greift im Key-Value-Speicher von Redis den JSON-Wert. Da alles völlig lokal im RAM des Cache-Servers liegt, antwortet er in fast sub-Millisekunden-Zeit, und die DB stürzt unter Netzwerklast wegen SELECT Anfragen nicht zusammen.
3. HTTP Caching Headers und ETags
Auf HTTP Layer 7 hat sich Cache-Kultur institutionalisiert, damit der Browser sich blind steuern lässt.
Das API Gateway eines Servers liefert das Bild eines Avatars als HTTP Response.
Er schickt einen Cache-Control Header mit: Cache-Control: max-age=3600. Der Browser schreibt das Bild in die lokale Platte. Für 1 Stunde wird er (auch beim Reload durch User) nie wieder eine Netzwerkanfrage stellen. Er nimmt stur das Platte-Bild.
Und was macht er nach einer Stunde, wenn sie abläuft? Statt blind ein 5 MB Bild neu zu laden, schickt er via Header dem Server ein ETag (meist ein MD5 Hash des letzten Files, z.B. 123ab). Der Server prüft: Das Server-Bild hat sich nicht verändert, es ist noch ETag 123! Er spart sich die Übertragung der Payload, retourniert 304 Not Modified, und der Browser weiß: Ich darf das Bild wieder in meine Tasche packen "es bleibt das Caching-Original".
5. Prüfen
Ist mehr Cache immer besser?
Ja, aber Cache-Speicher ist extrem teuer (SRAM für CPU-Cache). Deshalb haben CPUs nur wenige Megabyte davon.Was ist ein "Cache Strike" / "Cache Hit"?
Cache Hit: "Juhu, Daten waren in der Hosentasche!" (Schnell).
Cache Miss: "Mist, ich muss in den Keller laufen." (Langsam).Speichert der Cache Passwörter?
Browser fragen oft "Passwort speichern?", aber das ist der Passwort-Manager, nicht der normale Cache. Der Web-Cache speichert eher Bilder, Skripte und HTML.
Zusammenfassung
- Ein Cache (gesprochen "Käsch") ist wie deine Hosentasche. Wenn du handwerkerst, hast du dein Werkzeug im Keller (Festplatte/Server). Das dauert lange zu holen. Die Dinge, die du jetzt gerade oft brauchst (Schraubenzieher), steckst du in die Hosentasche...
- "Leeren Sie mal Ihren Cache!" Das ist der Standard-Tipp vom Support. Warum? Manchmal hat der Cache alte Daten. Die Webseite hat ein neues Design, aber dein Browser zeigt noch das alte Bild aus der Hosentasche (Cache), weil er denkt "Das kenne ich schon"....
Optionale Praxisaufgabe
- Erkläre Cache in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Cache relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
RAM S1
Überblick: RAM ist das Kurzzeitgedächtnis deines Computers. Alles, was du gerade jetzt machst (diese Webseite lesen, Musik hören), liegt im RAM. Es ist extrem schnell, aber vergesslich. Sobald du den Strom ausschaltest, ist der RAM leer. Deshalb musst du deine Hausarbeit speichern (auf die Festplatte schreiben), bevor du den PC herunterfährst.
Einfach erklärt: Wie viel RAM brauchst du? 8 GB: Standard für Surfen und Office. 16 GB: Gut für Gaming und Fotobearbeitung. 32 GB+: Für Videoschnitt und Profi-Anwendungen.
Warum speichert man nicht einfach alles im RAM?
1. Weil alles weg wäre, wenn der Strom ausfällt. 2. Weil RAM viel teurer ist als SSD-Speicher (pro Gigabyte).Was bedeutet "Chrome frisst RAM"?
Jeder offene Tab in Chrome ist ein eigener Prozess. Das ist sicher (wenn einer abstürzt, lebt der Rest weiter), kostet aber viel Arbeitsspeicher.Was ist der Unterschied zu VRAM?
VRAM (Video RAM) sitzt auf der Grafikkarte. Er ist speziell dafür optimiert, riesige Texturen und 3D-Modelle für Spiele zu speichern.
CPU S1
Überblick: Die CPU (Central Processing Unit) ist das Gehirn deines Computers. Sie erledigt alle Denkaufgaben. Jedes Mal, wenn du die Maus bewegst, eine Webseite öffnest oder 1+1 rechnest, ist es die CPU, die das macht. Sie ist ein winziger Chip (kleiner als ein Keks), der aber Milliarden von Befehlen pro Sekunde ausführen kann.
Einfach erklärt: Beim Kauf eines PCs achtet man auf zwei Dinge: 1. Kerne (Cores): Wie viele Aufgaben kann er gleichzeitig machen? 2 Kerne = Du kannst surfen und Musik hören. 8 Kerne = Du kannst spielen, streamen und Videos schneiden gleichzeitig. 2. Taktfrequenz (GHz): Wie schnell denkt er? 3 GHz = 3 Milliarden Takte pro Sekunde. (Schneller = Besser für Spiele).
Was ist wichtiger: Viele Kerne oder viel GHz?
Kommt drauf an. Für Gaming oft GHz (Single-Core Speed). Für Videoschnitt und Multitasking eher Kerne (Multi-Core Speed).Warum wird die CPU heiß?
Weil Milliarden von Elektronen mit hoher Geschwindigkeit durch winzige Leiterbahnen flitzen. Der elektrische Widerstand erzeugt Wärme, die der Lüfter wegblasen muss.Was ist der Unterschied zur GPU (Grafikkarte)?
Die CPU ist ein Alleskönner (wenige, starke Kerne). Die GPU ist ein Spezialist für Bilder (tausende, dumme Kerne), perfekt für parallele Aufgaben wie 3D-Grafik oder KI.
Browser S1
Überblick: Das Internet ist wie eine riesige Bibliothek. Webseiten sind die Bücher. Der Browser ist deine Lesebrille. Ohne ihn siehst du nur kryptischen Code (HTML). Der Browser übersetzt diesen Code in schöne Bilder, Texte und Videos. Die bekanntesten sind Google Chrome, Apple Safari, Microsoft Edge und Mozilla Firefox.
Einfach erklärt: Das wichtigste Feld ist oben: Die Adressleiste (URL-Bar). Dort gibst du ein, wo du hin willst (google.de). Moderne Browser haben auch: Tabs: Mehrere Seiten gleichzeitig offen. Lesezeichen: Merken von Lieblingsseiten. Erweiterungen (Extensions): Miniprogramme wie Werbeblocker oder Passwort-Manager.
Ist Google ein Browser?
Nein. Google ist eine Suchmaschine. Chrome ist der Browser. Viele verwechseln das, weil Chrome von Google stammt und die Suche eingebaut hat.Was ist der Inkognito-Modus?
Er speichert keinen Verlauf und keine Cookies auf deinem PC. Aber Achtung: Dein Chef und dein Internetanbieter sehen trotzdem, was du machst! Er macht dich nicht unsichtbar im Netz.Warum frisst Chrome so viel RAM?
Wegen der Isolation (Sandbox). Jeder Tab ist ein eigener Prozess. Wenn ein Tab abstürzt, reißt er die anderen nicht mit. Das kostet aber viel Speicher.
Cookie (HTTP Cookie) S1
Überblick: HTTP hat Alzheimer. Wenn du Seite A lädst und dann Seite B, weiß der Server nicht mehr, wer du bist. Lösung: Der Server gibt dir beim ersten Besuch einen kleinen Zettel (Cookie) mit. "Du bist User 123." Dein Browser speichert den Zettel. Bei jedem weiteren Klick auf dieser Seite zeigt dein Browser den Zettel automatisch vor. Server: "Ah, User 123 ist wieder da." Ohne Cookies gäbe es keinen Login und keinen Warenkorb.
Einfach erklärt: In den DevTools (F12) - Application - Cookies. Du siehst Name (sessionid) und Wert (xyz...). In PHP: setcookie("user", "Max", time()+3600); Achtung: Cookies sind auf 4KB begrenzt. Speichere dort keine großen Daten!
Session vs. Persistent?
Session-Cookie: Hat kein Ablaufdatum. Wird gelöscht, wenn Browser geschlossen wird. Persistent-Cookie: HatExpires=2025. Bleibt auch nach Neustart da ("Angemeldet bleiben").Kann ich Cookies löschen?
Ja, der User hat die volle Kontrolle. Ein Entwickler darf sich nie darauf verlassen, dass ein Cookie für immer da bleibt.Signed Cookies?
Um Manipulation zu verhindern (user=adminfälschen), signiert das Framework das Cookie (user=admin.HashedSignature). Wenn der User es ändert, stimmt die Signatur nicht mehr -> Server verwirft es.
API Gateway S1
Überblick: Stell dir ein riesiges Hotel vor (deine Software). Es gibt Köche, Putzkräfte, Elektriker (Microservices). Gäste (Nutzer) sollen aber nicht direkt in die Küche rennen, um Essen zu bestellen. Sie gehen zur Rezeption. Die Rezeption ist das API Gateway. Sie nimmt alle Wünsche entgegen. Sie prüft: "Sind Sie Gast hier?" (Sicherheit). Sie leitet den Wunsch an die richtige Abteilung weiter ("Küche, einmal Pizza für Zimmer 101").
Einfach erklärt: Wenn du eine App baust, willst du nicht, dass die App 50 verschiedene Server-Adressen kennen muss (auth-server.com, user-server.com, payment-server.com). Die App kennt nur eine Adresse: api.meine-app.com. Das Gateway dahinter sortiert: /login - geht zum Auth-Service. /pay - geht zum Payment-Service.
Ist das nicht ein "Single Point of Failure"?
Ja! Wenn die Rezeption brennt, kommt niemand mehr ins Hotel. Deshalb betreibt man Gateways oft im Cluster (mehrere Rezeptionisten).Was ist der Unterschied zum Load Balancer?
Ein Load Balancer verteilt Last innerhalb einer Gruppe gleicher Server (Webserver 1, 2, 3). Ein API Gateway verteilt Anfragen basierend auf Inhalt an verschiedene Services (/users, /billing) und macht dazu noch Logik wie Auth.Muss ich das selbst programmieren?
Bloß nicht. Nimm fertige Lösungen (Kong, Traefik, Nginx). Die sind millionenfach getestet und sicher.
Schritt 26 / 65
Message Queue
Hintergrundaufgaben und Systemteile entkoppeln.
S1
Schritt 26 / 65
Message Queue
Hintergrundaufgaben und Systemteile entkoppeln.
1. Verstehen
Einsteiger-Brücke: Wenn du Message Queue zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Message Queue ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Eine Message Queue ist eine Warteschlange für Nachrichten zwischen Systemteilen.
Merksatz: Message Queue ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Message Queue ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Statt alles sofort zu erledigen, legt das Backend eine Aufgabe in eine Queue. Ein Worker arbeitet sie später ab.
Typische Anfängerfrage: Woran erkenne ich Message Queue im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technischer Zusammenhang: Message Queue steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Queues entkoppeln Systeme, glätten Lastspitzen und machen Hintergrundjobs wie E-Mails, Bildverarbeitung oder Reports robuster.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Message Queue zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Message Queue funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Wichtig sind Zustellungsgarantien, Idempotenz, Retries, Dead Letter Queues, Reihenfolge, Backpressure und Monitoring.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Message Queue ohne Fachsprache.
In einfachen Worten: Eine Message Queue ist eine Warteschlange für Nachrichten zwischen Systemteilen. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Message Queue praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Message Queue ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem rabbitmq und kafka. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Message Queue zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Message Queue ist dabei entweder Werkzeug, Rolle, Technik oder...
- Technischer Zusammenhang: Message Queue steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht,...
Optionale Praxisaufgabe
- Erkläre Message Queue in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Message Queue relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 26.1 / 65
RabbitMQ
Nachrichten zuverlässig zwischen Services vermitteln.
S1
Schritt 26.1 / 65
RabbitMQ
Nachrichten zuverlässig zwischen Services vermitteln.
1. Verstehen
Einsteiger-Brücke: Wenn du RabbitMQ zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. RabbitMQ ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
RabbitMQ ist ein Message Broker, der Nachrichten zwischen Anwendungen zuverlässig vermittelt.
Merksatz: RabbitMQ ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. RabbitMQ ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
RabbitMQ ist wie eine Poststelle für Software: Ein Teil gibt eine Aufgabe ab, ein anderer Teil holt sie ab.
Typische Anfängerfrage: Woran erkenne ich RabbitMQ im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei RabbitMQ immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: RabbitMQ steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
RabbitMQ arbeitet mit Exchanges, Queues, Bindings, Acknowledgements und Consumers.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird RabbitMQ zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob RabbitMQ funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
In Produktion zählen Durable Queues, Prefetch, Retry-Strategien, Dead Letter Exchanges, Clustering, Monitoring und Idempotenz.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre RabbitMQ ohne Fachsprache.
In einfachen Worten: RabbitMQ ist ein Message Broker, der Nachrichten zwischen Anwendungen zuverlässig vermittelt. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem RabbitMQ praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und RabbitMQ ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem message queue und kafka. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du RabbitMQ zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. RabbitMQ ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technik-Nachtrag: Prüfe bei RabbitMQ immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre RabbitMQ in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem RabbitMQ relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 26.2 / 65
Apache Kafka
Ereignisströme und große Nachrichtenmengen verarbeiten.
S3
Schritt 26.2 / 65
Apache Kafka
Ereignisströme und große Nachrichtenmengen verarbeiten.
1. Verstehen
Stell dir das Nervensystem einer Firma vor. Früher wurden Daten per Batch kopiert (nachts um 3 Uhr). "Wie viele Klicks hatten wir gestern?" Heute will man es jetzt wissen. Kafka ist ein Hochgeschwindigkeits-Rohr für Ereignisse (Events). User klickt -> Event in Kafka -> Analyse-Tool liest es (Millisekunden später). Es ist extrem robust. Du kannst Millionen Events pro Sekunde reinfeuern, Kafka speichert sie sicher ("Log") und lässt hunderte Verbraucher gleichzeitig lesen.
Merksatz: Eine verteilte Event-Streaming-Plattform, die verwendet wird, um Datenströme in Echtzeit mit extrem hohem Durchsatz zu speichern, zu verarbeiten und zu verteilen.
2. Anwenden
Praxis-Nachtrag: Nutze Apache Kafka in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Apache Kafka auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Das Prinzip: Pub/Sub (Publisher / Subscriber).
- Producer: Der Webserver sendet "Klick".
- Topic: Der Kanal ("Klicks-Topic").
- Consumer: Das Data Warehouse liest. Der Fraud-Detector liest auch. Das Marketing-Dashboard liest auch. Alle lesen vom gleichen Log, aber jeder in seinem Tempo.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei Apache Kafka immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
1. Partitioning
Ein Topic (Log) kann zu groß für einen Server werden. Man teilt es in Partitionen. Partition 1 auf Server A, Partition 2 auf Server B. Das erlaubt paralleles Lesen und Schreiben (Massive Scalability). Wichtig: Die Reihenfolge der Nachrichten ist nur innerhalb einer Partition garantiert.
2. Log Compaction
Kafka löscht alte Daten normalerweise nach 7 Tagen. Mit Compaction behält es immer den letzten Zustand pro Key. Perfekt, um Datenbank-Tabellen zu spiegeln (Change Data Capture).
4. Vertiefen
1. Zero-Copy (sendfile syscall) und OS Page Cache
Kafka läuft auf der JVM. Müsste es Gigabytes von RAM konsumieren, würde die Garbage Collection (OOM Kills) das Tool zerstören.
Das Genie von Kafka ist der radikale Bypass der Applikationsschicht via Linux sendfile() Systemcall (Zero Copy).
Eine Nachricht poppt im Linux Socket Buffer (NIC) auf und das OS flucht sie stumpf in den Kernel-Mode OS Page-Cache, ohne dass der Java-Heap-Space sie jemals überhaupt anfässt (Garbage Collector ignoriert alles). Liest ein Consumer (Consumer Pull Request), kommandiert Kafka das Betriebssystem, den File-Deskriptor von der SSD Plakette quer-horizontal sofort wieder in den Netzwerk-Socket Buffer als DMA-Stream rauszuspülen. Die JVM fungiert in Kafka nur als schlanker Traffic-Cop (Verwaltung/Clusterlogik), aber fasst Byte-Streams als User-Space Context nie aktiv an. Das treibt den Durchsatz ans absolute I/O Blech-Limit der Cloud Disks (NIC Saturation, 100 GBit/s).
2. Raft Konsens (KRaft) und das Zookeeper-Ende
Jahrelang galt Kafka als Pain, da Administratoren nebenbei zwingend 3 Nodes "Apache Zookeeper" aufbauen mussten. Zookeeper hielt alle Meta-Secrets ("Wer ist Topic Leader für Partition 1?"). Architekturbruch KIP-500 beseitigt diese Legacy. Das sogenannte KRaft System implementiert das Raft Consensus Protocol nun nativ und direkt im Core. Das Kafka-Broker Meta Quorum teilt Controller-Verantwortung autark unter sich. Als Resultat erholen sich Cluster aus harten Reboots nun 10-Mal schneller unter extremen Partitions-Loads (Millionen Partitionsgrenzen), da der TCP-Rundgang durch das schwache Zookeeper-Zentrum entfällt und Split-Brain Bugs massiv der Vergangenheit angehören.
3. Log Structured Segment Files & O(1) Reads
Trotz gigantischer Menge verhält sich Kafka niemals wie eine SQL-DB mit B-Tree-Indizes (welche langsam $\mathcal{O}(\log N)$ updaten).
Kafka modelliert Disks exklusiv im "Append-Only" File System Record (Log-Structured Immutable Files).
Jeder geschriebener Broker-Index mutiert in rollierende segment-10023.log Dump-Dateien, getrieben mit O(1) Schreib-Time (der Nadelkopf der HDD rödelt nicht rum). Für Consumer-Queries operiert man ausschließlich mit einem plumpen binären Integer Offset Index (Binary Search per Sparse Mapped Index). Selbst wenn du 5 Terabytes als Backpressure in Topic 4 hast, feuert Kafka die Next-Message bei $\mathcal{O}(1)$ ohne jeden Performance Einbruch wie einen Pfeil raus.
5. Prüfen
Unterschied zu RabbitMQ?
RabbitMQ ist ein "Briefkasten" (Nachricht gelesen -> gelöscht). Kafka ist ein "Tagebuch" (Nachricht bleibt stehen, man kann zurückblättern). Kafka ist besser für Big Data und Replay.Was ist LinkedIn?
Die Erfinder von Kafka. Sie bauten es, um das Activity Tracking ("Wer hat wen besucht") zu stemmen.Ist es schwer zu betreiben?
Ja, die Hölle. Du brauchst ZooKeeper (früher), viele Disks, Netzwerk-Tuning. Viele nutzen deshalb Managed Kafka (Confluent Cloud / AWS MSK).
Zusammenfassung
- Stell dir das Nervensystem einer Firma vor. Früher wurden Daten per Batch kopiert (nachts um 3 Uhr). "Wie viele Klicks hatten wir gestern?" Heute will man es jetzt wissen. Kafka ist ein Hochgeschwindigkeits-Rohr für Ereignisse (Events). User klickt - Event in...
- Praxis-Nachtrag: Nutze Apache Kafka in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Apache Kafka auf, was würde ohne diesen Baustein fehlen, und welchen...
- Technik-Nachtrag: Prüfe bei Apache Kafka immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre Apache Kafka in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Apache Kafka relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Event-Driven Architecture (EDA) S3
Überblick: Klassisch (Request/Reply): Du bestellst Pizza (Telefon). Du wartest am Hörer, bis der Bäcker sagt: "Okay, ist im Ofen." (Blockierend). Event-Driven (Fire & Forget): Du wirfst einen Zettel in den Briefkasten: "Ich will Pizza." (Event). Du legst dich aufs Sofa. Der Bäcker sieht den Zettel, backt, und wirft einen Zettel bei sich ein: "Pizza fertig." Der Lieferdienst sieht den Zettel "Pizza fertig", holt sie ab und klingelt bei dir. Niemand wartet aktiv. Alles reagiert auf Ereignisse. Das System ist extrem lose gekoppelt.
Einfach erklärt: Du brauchst einen Message Broker (Kafka, RabbitMQ). Service A (Bestellung) ruft nicht Service B (Lager) an. Service A schreit einfach in den Raum: "Bestellung eingegangen!" (Publish). Service B hört zu (Subscribe) und reagiert: "Oh, ich muss das Lager checken." Service C (Rechnung) reagiert auch: "Oh, ich muss eine Rechnung schreiben." Vorteil: Du kannst Service D hinzufügen, ohne Service A zu ändern.
Was ist "Eventual Consistency"?
Da alles asynchron ist, dauert es kurz, bis alle Daten überall gleich sind. "Kunde hat gekauft", aber "Lager ist noch nicht leer". Für Millisekunden ist die Welt inkonsistent. Damit muss man leben lernen.Was, wenn ein Event verloren geht?
Darf nicht passieren. Broker wie Kafka garantieren "At-Least-Once Delivery". Deine Services müssen damit klarkommen, dass ein Event vielleicht doppelt kommt (Idempotenz).Warum ist Debuggen schwer?
Weil es keinen "Stack Trace" gibt, der durch alle Services geht. Du musst Logs über mehrere Systeme korrelieren ("Correlation ID"), um zu verstehen, was passiert ist.
Schritt 27 / 65
Rate Limiting
APIs vor Überlast und Missbrauch schützen.
S1
Schritt 27 / 65
Rate Limiting
APIs vor Überlast und Missbrauch schützen.
1. Verstehen
Stell dir eine Drehtür am Eingang vor.
Wenn 1000 Leute gleichzeitig durch wollen, klemmt sie.
Der Türsteher sagt: "Stopp! Nur 1 Person pro Sekunde."
Das ist Rate Limiting.
Es schützt deinen Server davor, von zu vielen Anfragen (DDoS oder einfach Erfolg) überrannt zu werden.
Es garantiert Fairness: Ein aggressiver User darf nicht alle Ressourcen klauen, sodass für andere nichts übrig bleibt ("Noisy Neighbor Problem").
Antwort bei Blockierung: 429 Too Many Requests.
Merksatz: Eine Technik zur Begrenzung der Anzahl von Anfragen, die ein Client innerhalb eines bestimmten Zeitraums an eine API oder einen Dienst senden darf.
2. Anwenden
HTTP Header erzählen dir, wie viel du noch darfst:
X-RateLimit-Limit: 100(Du darfst 100 pro Std).X-RateLimit-Remaining: 5(Noch 5 übrig).X-RateLimit-Reset: 16999999(Wann der Zähler nullt). Wenn du429bekommst, musst du warten (Backoff). Nginx Config:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
Praxisroutine
In der Praxis lernst du Rate Limiting, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Algorithmen (Token Bucket vs Leaky Bucket)
Wie zählt man?
- Fixed Window: "100 pro Minute". Problem: Wenn ich um 12:00:59 100 sende, und um 12:01:01 100 sende, sind das 200 in 2 Sekunden. Server crasht.
- Sliding Window: Glättet die Spitzen. Rechenintensiver (Redis).
- Token Bucket: Du hast einen Eimer mit 10 Marken. Jede Sekunde kommt 1 Marke dazu. Request kostet 1 Marke. Erlaubt kurze "Bursts" (Spitzen), aber langfristig konstant. Standard in AWS.
2. Distributed Rate Limiting
Wenn du 10 Server hast.
Woher weiß Server A, dass User X bei Server B schon 99 Requests gemacht hat?
Du brauchst einen zentralen Zähler (Redis).
Alle Server fragen Redis: "Darf User X noch?".
Atomic Increment (INCR).
Achtung: Redis wird zum Single Point of Failure. Wenn Redis langsam ist, wird die ganze API langsam.
3. Client Side Throttling
Gute Clients (SDKs) haben Rate Limiting eingebaut. Sie senden gar nicht erst, wenn sie wissen, dass sie geblockt würden. Sie nutzen Exponential Backoff (Warte 1s, 2s, 4s, 8s...), wenn Fehler auftreten. Das verhindert den "Thundering Herd" Effekt, wenn der Server wieder hochkommt.
4. Vertiefen
1. Garbage Collection beim Sliding Window Log
Ein "Fixed Window" (0-1 Minute, 1-2 Minuten) hat an den Klick-Rändern Schwächen. Ein perfider Angreifer feuert 100 Requests um 01:59 und weitere 100 Requests um 02:01. Die API bricht zusammen mit 200 req/sec (Spike), obwohl das Limit theoretisch "100 pro Minute" war.
Als Antwort kam das Sliding Window Log. Jeder Request-Timestamp wird gnadenlos in einen sortierten Redis-Set (ZADD) geschrieben. Ein Skript rechnet: "Lösche (Garbage Collect) jetzt alle Timestamps des Users, die älter als CurrentTime minus 60 Sekunden sind (ZREMRANGEBYSCORE). Zähle den Rest."
Das Problem: Wenn ein DDoS ins Haus trudelt, musst du millionenfach Logs wegschreiben (Speicher-Explosion), obwohl der IP-Block längst gesperrt ist. Ein Architektur-Albtraum für die DB.
2. CPU / Cost-Aware Throttling (GraphQL & AI)
Klassisches Rate-Limiting zählte HTTP Requests. "10 Requests pro IP".
Das bricht bei komplexen APIs wie GraphQL oder AI-Modellen in sich zusammen. Ein /graphql Request greift 1 simplen String ab. Ein anderer /graphql Request nutzt eine tief geschachtelte Query, die der Postgres-DB hintenrum absurdeste 100-Tabellen-Joins abverlangt (DDoS mittels Complexity).
Modernes Quota Management misst Kosten. Ein Request ist nicht mehr "= 1". Ein komplexer Join kostet "50 Tokens". Eine Token Limit Bucket wird nicht nach Quantity runtergezählt, sondern nach der CPU-Millisekunden-Rechnung des Backends aggregiert (Complexity Analysis before Execution). In GenAI APIs wird exakt nach "Generated Tokens" gerate-limited.
3. Load Balancer Offloading und BPF / XDP
Wo passiert das Rate-Limiting? Wenn der Traffic erst deine Django-App erreicht und Node.js den HTTP-Body parst, um dann herauszufinden "Limit erreicht (429)", verschwendest du massive CPU-Ressourcen für unerwünschten Schrottverkehr. L7 Application Layer Parsing ist teuer.
Große Edge-Plattformen (Cloudflare / HAProxy) schieben das Throttling radikal auf Layer 3 / 4.
Technologien wie eBPF / XDP (eXpress Data Path) injizieren C-Code direkt extrem früh in den Kernel-Space der Netzwerkkarte (NIC). Pingt eine böse IP über das Limit, wirft die Netzwerkkarte im Nano-Sekunden-Takt die Datenpakete hart in der Hardware sofort unbesehen in /dev/null, noch bevor die Linux-CPU den TCP-Handshake registriert.
5. Prüfen
Unterschied zu Quota?
Rate Limit schützt den Server vor Spitzen ("10 req/s"). Quota ist ein Business-Limit ("10.000 req/Monat"). Quota ist "Billing", Rate Limit ist "Engineering".IP vs User ID?
Limitiere immer pro User ID (API Key), wenn möglich. IP-Limiting ist unfair für Leute hinter einem Firmen-NAT (1000 Leute teilen sich 1 IP -> alle geblockt). Nutze IP nur als Fallback für nicht eingeloggte User.Shadow Banning?
Statt429zu senden, machst du die Antworten für den Spammer künstlich langsam (10 Sekunden Delay). Das frustriert Angreifer, ohne dass sie wissen, warum ("Tarpitting").
Zusammenfassung
- Stell dir eine Drehtür am Eingang vor. Wenn 1000 Leute gleichzeitig durch wollen, klemmt sie. Der Türsteher sagt: "Stopp! Nur 1 Person pro Sekunde." Das ist Rate Limiting. Es schützt deinen Server davor, von zu vielen Anfragen (DDoS oder einfach Erfolg)...
- HTTP Header erzählen dir, wie viel du noch darfst: X-RateLimit-Limit: 100 (Du darfst 100 pro Std). X-RateLimit-Remaining: 5 (Noch 5 übrig). X-RateLimit-Reset: 16999999 (Wann der Zähler nullt). Wenn du 429 bekommst, musst du warten (Backoff). Nginx Config:...
Optionale Praxisaufgabe
- Erkläre Rate Limiting in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Rate Limiting relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
DDoS (Distributed Denial of Service) S1
Überblick: Stell dir vor, du hast eine Pizzeria mit einem Telefon. Ein DoS (Denial of Service) Angreifer ruft dich pausenlos an. Kein echter Kunde kommt mehr durch. Ein DDoS (Distributed...) Angreifer hat 10.000 Freunde (Bots/Viren-PCs), die dich alle gleichzeitig anrufen. Deine Leitung glüht, dein Personal bricht zusammen. Ziel ist nicht Einbruch (Daten klauen), sondern Zerstörung (Dienst unerreichbar machen).
Einfach erklärt: Als Opfer: Du merkst, dass deine Webseite down ist. Die Logs zeigen Millionen Requests pro Sekunde. Du kannst es alleine kaum stoppen (deine Internetleitung ist physikalisch voll). Du brauchst einen großen Bruder: Cloudflare oder Akamai. Die haben riesige "Waschstraßen" (Scrubbing Center). Sie nehmen den Traffic an, filtern den Müll raus, und leiten nur die echten Kunden zu dir weiter.
Ransom-DDoS?
Erpressung. "Zahle 5 Bitcoin, oder wir starten den Angriff." Oft nur ein Bluff, aber große Gruppen (Lazarus, etc.) machen es wahr.Legal?
Absolut illegal. Auch "Stresser"-Dienste ("Teste deine Firewall") zu buchen, um Gegner lahmzulegen, bringt dich ins Gefängnis.Unterschied DoS vs DDoS?
DoS: Ein Angreifer (leicht zu blocken per IP). DDoS: Viele Angreifer (schwer zu blocken, da IPs weltweit verstreut sind).
Circuit Breaker S3
Überblick: Wie die Sicherung in deinem Stromkasten. Wenn der Toaster kurzschließt und zu viel Strom zieht, brennt nicht das Haus ab. Die Sicherung "fliegt raus" (Stromkreis unterbrochen). In Software: Service A ruft Service B. Service B ist langsam oder tot. Service A wartet und wartet... und stürzt selbst ab (weil alle Threads warten). Ein Circuit Breaker überwacht die Fehler. "Oha, 5 Fehler in Folge bei Service B!" Er öffnet den Stromkreis. Ab jetzt werden alle Anfragen an B sofort abgelehnt ("Service B ist down"), ohne zu warten. A überlebt. Nach einer Weile prüft er vorsichtig ("Half-Open"), ob B wieder lebt.
Einfach erklärt: Bibliotheken wie Resilience4j (Java) oder Polly (.NET). Istio hat es eingebaut (Mesh-Level). Wichtig: Fallback. Wenn die Sicherung raus ist (Service B "Empfehlungen" weg), zeige dem User nicht "Fehler 500". Zeige stattdessen eine leere Liste oder Standard-Empfehlungen ("Bestseller"). Das nennt man Graceful Degradation.
Warum nicht einfach Retries?
Retries ("Versuch's nochmal") machen das Problem schlimmer. Wenn Service B überlastet ist, und 1000 Clients machen Retries, trittst du ihn tot ("Retry Storm"). Circuit Breaker gibt ihm eine Pause zum Erholen.Ist das Client-Side oder Server-Side?
Meistens Client-Side (der Aufrufer schützt sich selbst). Aber mit Service Mesh (Sidecar) passiert es in der Infrastruktur dazwischen.Wer setzt ihn zurück?
Er macht das automatisch nach einer Zeit (Reset Timeout). Kein Mensch muss zum Sicherungskasten laufen.
Schritt 28 / 65
Logs im Support
Fehler und Verhalten nachvollziehen.
S1
Schritt 28 / 65
Logs im Support
Fehler und Verhalten nachvollziehen.
1. Verstehen
Logs sind protokollierte Ereignisse, die zeigen, was ein System wann getan oder gemeldet hat.
Im Lehrgang gehört dieser Begriff zur Phase Betrieb, Störungserkennung und kontrollierte Ursachenanalyse. Er ist nicht als isolierte Definition gedacht, sondern als Baustein, den du später in echten Fällen wiedererkennst. Wenn du ganz neu einsteigst, musst du zuerst drei Dinge können: den Zweck in eigenen Worten erklären, die Grenze des Begriffs nennen und sagen, woran du in der Praxis erkennst, dass er gerade relevant ist.
Merksatz: Logs im Support beantwortet nicht jede Frage, aber es sortiert einen wichtigen Ausschnitt der Arbeit so, dass du nicht blind ausprobierst.
2. Anwenden
Im Support begegnet dir Logs im Support als Teil eines realen Arbeitsablaufs: Anfrage aufnehmen, Risiko einschaetzen, Fakten prüfen, Ergebnis dokumentieren.
Als Anfänger arbeitest du mit einer einfachen Prüfliste:
Was meldet der Nutzer wirklich, und was ist nur Vermutung?
Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: Im Support begegnet dir Logs im Support als Teil eines realen Arbeitsablaufs: Anfrage aufnehmen, Risiko einschaetzen, Fakten prüfen, Ergebnis dokumentieren.Wer ist betroffen, seit wann, auf welchem Gerät und in welchem Netzwerk?
Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: Im Support begegnet dir Logs im Support als Teil eines realen Arbeitsablaufs: Anfrage aufnehmen, Risiko einschaetzen, Fakten prüfen, Ergebnis dokumentieren.Welche Sicherheits- oder Datenschutzgrenze darf nicht überschritten werden?
Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: Im Support begegnet dir Logs im Support als Teil eines realen Arbeitsablaufs: Anfrage aufnehmen, Risiko einschaetzen, Fakten prüfen, Ergebnis dokumentieren.
Das Ziel ist nicht, sofort Experte zu sein. Das Ziel ist, den Normalfall sauber zu erkennen, keine riskanten Annahmen zu treffen und die nächste sinnvolle Handlung begründen zu können.
Miniübung für den Lehrgang: Formuliere einen echten Fall in zwei Sätzen, markiere die wichtigste Information und schreibe eine Rückfrage auf, die fehlende Fakten klärt. Dadurch lernst du, Logs im Support nicht nur zu definieren, sondern im Arbeitsfluss anzuwenden.
3. Technisch einordnen
Auf Level 2 wird Logs im Support in einen Ablauf eingebettet. Du unterscheidest Eingaben, Entscheidungspunkte, Ergebnis und Dokumentation. Genau dadurch wird aus Nachschlagen echtes Lernen: Du erkennst, was vorher geklärt sein muss, was sich aus dem Begriff ergibt und welche anderen Begriffe anschliessen.
Arbeite mit diesem Schema:
Eingang: Welche Beobachtung, Anfrage, Messung, Datei, Fehlermeldung oder Entscheidung startet den Vorgang?
Der Eingang ist der konkrete Auslöser: eine Beobachtung, Anfrage, Messung, Datei, Fehlermeldung oder Entscheidung. Schreibe zuerst den Rohbefund auf und trenne ihn von deiner Vermutung.Prüfung: Welche Fakten müssen belegt werden, bevor du handelst?
Bei der Prüfung belegst du die Fakten, bevor du handelst: Was ist passiert, wo passiert es, seit wann, wie oft, mit welcher Auswirkung und mit welchem Nachweis? Erst danach entscheidest du den nächsten Schritt.Aktion: Was ist der kleinste sinnvolle Schritt, der das Problem klärt oder voranbringt?
Die Aktion ist der kleinste reversible Schritt, der Klarheit bringt: eine Messung, ein kontrollierter Test, eine Rückfrage, ein Backup, eine Dokumentation oder eine sichere Änderung mit beobachtbarem Ergebnis.Nachweis: Was dokumentierst du, damit andere Menschen später verstehen, was passiert ist?
Der Nachweis hält fest, was entschieden und beobachtet wurde: Ausgangslage, Prüfschritte, Ergebnis, Zeit, Beteiligte, offene Risiken und der nächste sinnvolle Schritt. So kann jemand anderes den Fall nachvollziehen.
Vorher solltest du Troubleshooting-Grundmethode verstanden haben.
Für die Praxis bedeutet das: Du trennst Beobachtung von Interpretation. Eine Beobachtung ist zum Beispiel ein Messwert, eine Fehlermeldung, ein Zählerstand, ein Logeintrag oder ein reproduzierbarer Schritt. Eine Interpretation ist deine Vermutung, warum das passiert. Gute Arbeit entsteht, wenn beide Ebenen nicht vermischt werden.
Verwandte Begriffe für die Vertiefung: Monitoring, Troubleshooting-Grundmethode, Incident.
4. Vertiefen
Auf Expertenniveau geht es nicht mehr um das Wiederholen einer Definition. Du bewertest Randfälle, Grenzen, Verantwortlichkeiten und Folgewirkungen. Bei Logs im Support heißt das: Du kannst zwischen Normalfall, Ausnahmefall und Risiko unterscheiden. Du erkennst, wann ein Fall noch in deinen Aufgabenbereich gehört und wann Spezialisten, rechtliche Klärung, Security, Engineering oder eine formale Freigabe nötig sind.
Die wichtigsten Praxisfallen sind:
- Tickets enthalten Lösungsversuche, aber keine Faktenlage, Repro-Schritte oder klare Auswirkung.
- First Level versucht zu lange allein zu lösen, statt sauber zu eskalieren.
- Sicherheitsprüfungen werden aus Zeitdruck übersprungen, besonders bei Passwort, MFA und Remote-Zugriff.
- Symptome werden beseitigt, aber Ursache, Workaround und Dokumentation bleiben offen.
Goldstandard: Du kannst den Begriff einem Laien erklären, einen realistischen Fall damit bearbeiten, Grenzen sauber benennen, Nachweise dokumentieren und erklären, welche Entscheidung du warum getroffen hast.
5. Prüfen
Was ist der Zweck von Logs im Support?
Logs sind protokollierte Ereignisse, die zeigen, was ein System wann getan oder gemeldet hat.Welche Information muss zuerst geklärt werden?
Was meldet der Nutzer wirklich, und was ist nur Vermutung?Was wäre ein typischer Fehler?
Tickets enthalten Lösungsversuche, aber keine Faktenlage, Repro-Schritte oder klare Auswirkung.Woran erkennst du, dass der Begriff praktisch verstanden wurde?
Du kannst einen konkreten Fall damit sortieren, die nächste Handlung begründen und das Ergebnis nachvollziehbar dokumentieren.Wann darfst du nicht einfach weitermachen?
Wenn Sicherheit, Datenschutz, Rechts-/Steuerfragen, medizinische Grenzen, fehlende Berechtigung oder unklare Verantwortung betroffen sind.
Zusammenfassung
- Logs sind protokollierte Ereignisse, die zeigen, was ein System wann getan oder gemeldet hat.
- Im Support begegnet dir Logs im Support als Teil eines realen Arbeitsablaufs: Anfrage aufnehmen, Risiko einschaetzen, Fakten prüfen, Ergebnis dokumentieren.
- Auf Level 2 wird Logs im Support in einen Ablauf eingebettet. Du unterscheidest Eingaben, Entscheidungspunkte, Ergebnis und Dokumentation. Genau dadurch wird aus Nachschlagen echtes Lernen: Du erkennst, was vorher geklärt sein muss, was sich aus dem Begriff...
Optionale Praxisaufgabe
- Erkläre Logs im Support in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Logs im Support relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Troubleshooting-Grundmethode S1
Überblick: Troubleshooting ist die strukturierte Suche nach Ursache, Wirkung und nächstem sinnvollen Test.
Einfach erklärt: Ein Fehler tritt nur im Firmen-WLAN auf, nicht im Hotspot. Du aenderst jeweils nur eine Variable und prüfst danach das Ergebnis.
Tiefer verstanden: Auf Level 2 wird Troubleshooting-Grundmethode in einen Ablauf eingebettet. Du unterscheidest Eingaben, Entscheidungspunkte, Ergebnis und Dokumentation. Genau dadurch wird aus Nachschlagen echtes Lernen: Du erkennst, was vorher geklärt sein muss, was sich aus dem Begriff ergibt und welche anderen Begriffe anschliessen.
Praxisgrenze: Auf Expertenniveau geht es nicht mehr um das Wiederholen einer Definition. Du bewertest Randfälle, Grenzen, Verantwortlichkeiten und Folgewirkungen. Bei Troubleshooting-Grundmethode heißt das: Du kannst zwischen Normalfall, Ausnahmefall und Risiko unterscheiden. Du erkennst, wann ein Fall noch in deinen Aufgabenbereich gehört und wann Spezialisten, rechtliche Klärung, Security, Engineering oder eine formale Freigabe nötig sind.
Was ist der Zweck von Troubleshooting-Grundmethode?
Troubleshooting ist die strukturierte Suche nach Ursache, Wirkung und nächstem sinnvollen Test.Welche Information muss zuerst geklärt werden?
Was meldet der Nutzer wirklich, und was ist nur Vermutung?Was wäre ein typischer Fehler?
Tickets enthalten Lösungsversuche, aber keine Faktenlage, Repro-Schritte oder klare Auswirkung.Woran erkennst du, dass der Begriff praktisch verstanden wurde?
Du kannst einen konkreten Fall damit sortieren, die nächste Handlung begründen und das Ergebnis nachvollziehbar dokumentieren.Wann darfst du nicht einfach weitermachen?
Wenn Sicherheit, Datenschutz, Rechts-/Steuerfragen, medizinische Grenzen, fehlende Berechtigung oder unklare Verantwortung betroffen sind.
Monitoring S2
Überblick: Monitoring beobachtet Systeme laufend, damit Ausfälle, Engpaesse und Trends frueh sichtbar werden.
Einfach erklärt: Ein Server wirkt für Nutzer langsam. Monitoring zeigt CPU, RAM, Disk, Netzwerk und Fehlerkurven im Zeitverlauf.
Tiefer verstanden: Auf Level 2 wird Monitoring in einen Ablauf eingebettet. Du unterscheidest Eingaben, Entscheidungspunkte, Ergebnis und Dokumentation. Genau dadurch wird aus Nachschlagen echtes Lernen: Du erkennst, was vorher geklärt sein muss, was sich aus dem Begriff ergibt und welche anderen Begriffe anschliessen.
Praxisgrenze: Auf Expertenniveau geht es nicht mehr um das Wiederholen einer Definition. Du bewertest Randfälle, Grenzen, Verantwortlichkeiten und Folgewirkungen. Bei Monitoring heißt das: Du kannst zwischen Normalfall, Ausnahmefall und Risiko unterscheiden. Du erkennst, wann ein Fall noch in deinen Aufgabenbereich gehört und wann Spezialisten, rechtliche Klärung, Security, Engineering oder eine formale Freigabe nötig sind.
Was ist der Zweck von Monitoring?
Monitoring beobachtet Systeme laufend, damit Ausfälle, Engpaesse und Trends frueh sichtbar werden.Welche Information muss zuerst geklärt werden?
Was meldet der Nutzer wirklich, und was ist nur Vermutung?Was wäre ein typischer Fehler?
Tickets enthalten Lösungsversuche, aber keine Faktenlage, Repro-Schritte oder klare Auswirkung.Woran erkennst du, dass der Begriff praktisch verstanden wurde?
Du kannst einen konkreten Fall damit sortieren, die nächste Handlung begründen und das Ergebnis nachvollziehbar dokumentieren.Wann darfst du nicht einfach weitermachen?
Wenn Sicherheit, Datenschutz, Rechts-/Steuerfragen, medizinische Grenzen, fehlende Berechtigung oder unklare Verantwortung betroffen sind.
Incident S1
Überblick: Ein Incident ist eine ungeplante Störung eines IT-Services, die erkannt, bewertet und gelöst werden muss.
Einfach erklärt: Mehrere Mitarbeiter können nicht auf ein Fachsystem zugreifen. Du behandelst das nicht als normale Frage, sondern als Störung mit Auswirkung auf Arbeit und Service.
Tiefer verstanden: Auf Level 2 wird Incident in einen Ablauf eingebettet. Du unterscheidest Eingaben, Entscheidungspunkte, Ergebnis und Dokumentation. Genau dadurch wird aus Nachschlagen echtes Lernen: Du erkennst, was vorher geklärt sein muss, was sich aus dem Begriff ergibt und welche anderen Begriffe anschliessen.
Praxisgrenze: Auf Expertenniveau geht es nicht mehr um das Wiederholen einer Definition. Du bewertest Randfälle, Grenzen, Verantwortlichkeiten und Folgewirkungen. Bei Incident heißt das: Du kannst zwischen Normalfall, Ausnahmefall und Risiko unterscheiden. Du erkennst, wann ein Fall noch in deinen Aufgabenbereich gehört und wann Spezialisten, rechtliche Klärung, Security, Engineering oder eine formale Freigabe nötig sind.
Was ist der Zweck von Incident?
Ein Incident ist eine ungeplante Störung eines IT-Services, die erkannt, bewertet und gelöst werden muss.Welche Information muss zuerst geklärt werden?
Was meldet der Nutzer wirklich, und was ist nur Vermutung?Was wäre ein typischer Fehler?
Tickets enthalten Lösungsversuche, aber keine Faktenlage, Repro-Schritte oder klare Auswirkung.Woran erkennst du, dass der Begriff praktisch verstanden wurde?
Du kannst einen konkreten Fall damit sortieren, die nächste Handlung begründen und das Ergebnis nachvollziehbar dokumentieren.Wann darfst du nicht einfach weitermachen?
Wenn Sicherheit, Datenschutz, Rechts-/Steuerfragen, medizinische Grenzen, fehlende Berechtigung oder unklare Verantwortung betroffen sind.
Schritt 29 / 65
Metrics
Systeme messbar machen.
S1
Schritt 29 / 65
Metrics
Systeme messbar machen.
1. Verstehen
Logs erzählen dir eine Geschichte ("Gestern um 5 ist Server A abgestürzt"). Metriken sind Zahlen ("CPU Auslastung ist 80%"). Metriken sind billig zu speichern und extrem schnell zu durchsuchen. Sie zeigen dir Trends (wird es langsamer?) und den aktuellen Zustand. Typische Fragen für Metriken:
- "Wie viele User sind online?"
- "Wie lange dauert ein Request?"
- "Ist noch genug Speicherplatz da?"
Merksatz: Numerische Messwerte, die den Zustand eines Systems über die Zeit hinweg (Time Series Data) erfassen, um Performance, Auslastung und Verfügbarkeit zu überwachen.
2. Anwenden
Das Standard-Tool ist Prometheus.
Deine App muss einen Endpunkt /metrics bereitstellen.
Dort steht Text drin:
http_requests_total{method="post",status="200"} 1024
process_cpu_seconds_total 12.5
Prometheus kommt alle 15 Sekunden vorbei ("Scraping") und speichert die Zahlen. In Grafana baust du bunte Kurven daraus.
Praxisroutine
In der Praxis lernst du Metrics, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Metrik-Typen
Es gibt 4 heilige Typen:
- Counter: Geht nur hoch (z. B. "Anzahl Fehler"). Niemals runter (außer Neustart). Rate berechnen:
rate(errors[5m]). - Gauge: Geht hoch und runter (z. B. "Temperatur", "Queue Länge", "Aktuelle User").
- Histogram: Gruppiert Werte in Eimer (Buckets). "Wie viele Requests waren < 0.1s? Wie viele < 0.5s?". Wichtig für Perzentile (P99).
- Summary: Ähnlich wie Histogram, berechnet aber auf Clientside (weniger flexibel).
2. Cardinality Explosion
Der Tod jedes Prometheus-Servers.
Key-Value Paare heißen "Labels".
http_requests_total{method="POST", user_id="123"}.
Wenn du user_id als Label nimmst und 1 Million User hast, erstellt Prometheus 1 Million Zeitreihen.
Der RAM läuft voll (OOM).
Regel: Keine unbegrenzten Werte in Labels! (Keine User-IDs, keine URLs mit Query-Params, keine Fehlermeldungen). Nur endliche Sets (Method, Status Code, Region).
3. Pushgateway
Prometheus "pullt" (holt ab). Was ist mit Batch-Jobs, die nur 5 Sekunden laufen? Prometheus kommt zu spät. Für kurze Jobs nutzt man das Pushgateway. Der Job drückt ("pusht") seine Metriken da rein und stirbt. Prometheus holt sie später gemütlich vom Gateway ab.
4. Vertiefen
1. Quantile und Das Histogram-Bucket Problem
Durchschnitte bei Latenzen sind tödlich ("Average Response Time: 50ms"). Wenn 99 Requests 10ms brauchen, und einer 4010ms (weil DB tot), ist der Schnitt bei 50. Der Support sieht nichts.
Du analysierst P99 (Das 99. Perzentil). Es zeigt dir den Wert, bei dem 99% der Anfragen abschnitten.
Die brutale Realität in Prometheus: Es kann auf dem Server keine echten Perzentile ausrechnen, weil es nicht jeden Request einzeln speichert (zu viel RAM). Prometheus zwingt dich zu "Buckets" (le="0.1", le="1.0", le="5.0").
Kommt ein P99-Request auf 0.6ms, und der Bucket geht von 0.5 bis 1.0, ratet die PromQL Engine per histogram_quantile() linear interpolierend den Wert zwischen 0.5 und 1. Das erzeugt bei falsch konfigurierten Buckets wilde Artefakt-Linien auf Grafana-Meteogrammen (Geister-Spikes).
2. Time-Series Database (TSDB) Architektur
InfluxDB, Prometheus (Gorilla Compression) operieren auf brutalem TSDB-Niveau.
Zwei Zeitstempel sind z.B 160000000 und 15s später 160000015. Man speichert bei TSDBs nicht beide gigantischen 64-Bit Zahlen. Man misst das "Delta" (+15). Beim nächsten Scrap (erneut 15s später) misst man das "Delta-of-Delta" (Differenz der Differenz ist 0). Diese winzige Null lässt sich binär auf exakt 1 Bit im Speicher komprimieren. Dasselbe passiert beim CPU-Wert (50% -> 50% = D-o-D 0). Durch dieses Delta-Encoding pressen TSDBs astronomische Millionen Datensätze pro Sekunde auf die Size eines MP3-Songs.
3. RED Metrics und Service Mesh
Die "USE" (Utilization, Saturation, Errors) Methode der 1990er überwachte primär Hardware. In Cloud-Native geht es dem SRE mehr um RED Methoden (Rate, Errors, Duration). Anstatt die CPU zu prüfen, prüfen wir die User-API. Das geniale an Kubernetes und Istio/Linkerd (Service Mesh): Der App-Code muss sich für die RED-Metriken nicht ändern. Der "Sidecar-Proxy" von Istio sitzt hart verdrahtet im Pod Container. Er sieht jeden Byte HTTP Inbound-Traffic zwangsläufig vorbei fließen, zählt die Requests im Container, und drückt ohne jegliches Eingreifen des Programmierers standardisierte L7-Grafana Kurven an Prometheus ab.
5. Prüfen
Warum 4 Golden Signals?
Latenz, Traffic, Errors, Saturation (Auslastung). Diese 4 Metriken reichen aus, um den Gesundheitszustand fast jedes Systems zu beurteilen (Google SRE Book).Was ist High Resolution?
Metriken jede Sekunde sc rapen? Teuer. Standard ist 15s oder 1m. Metriken sind "Lossy" (man verliert kurze Spikes zwischen den Intervallen). Für exakte Analyse brauchst du Logs oder Tracing.Monitoring vs. Observability?
Monitoring sagt dir "Dass" etwas kaputt ist (Alert: CPU > 90%). Observability (Logs + Metrics + Traces) hilft dir herauszufinden "Warum" es kaputt ist, auch wenn du das Problem vorher noch nie hattest.
Zusammenfassung
- Logs erzählen dir eine Geschichte ("Gestern um 5 ist Server A abgestürzt"). Metriken sind Zahlen ("CPU Auslastung ist 80%"). Metriken sind billig zu speichern und extrem schnell zu durchsuchen. Sie zeigen dir Trends (wird es langsamer?) und den aktuellen...
- Das Standard-Tool ist Prometheus. Deine App muss einen Endpunkt /metrics bereitstellen. Dort steht Text drin: httprequeststotal{method="post",status="200"} 1024 processcpusecondstotal 12.5 Prometheus kommt alle 15 Sekunden vorbei ("Scraping") und speichert...
Optionale Praxisaufgabe
- Erkläre Metrics in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Metrics relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Tracing (Distributed Tracing) S2
Überblick: Deine App besteht aus 100 Microservices. User meldet: "Es ist langsam!" Wo? In Service A? Datenbank B? Oder im Netzwerk dazwischen? Mit Logs findest du das nie. Tracing verfolgt einen einzelnen Request auf seiner Reise durch alle Services. Jeder Service fügt einen Balken ("Span") hinzu: "Ich habe von 10:00 bis 10:01 gebraucht". Am Ende hast du ein Wasserfall-Diagramm (Gantt Chart), das genau zeigt, wer der Flaschenhals ist.
Einfach erklärt: Tools: Jaeger, Zipkin, Tempo. Du siehst einen Trace mit einer ID (trace-id: abc). Darunter eine Liste von Spans: 1. Frontend: /checkout (200ms) 2. Auth Service: Verify Token (50ms) 3. Payment Service: Charge (150ms) - Langsam! (ROT) 4. Database: INSERT (140ms) - Aha, die DB ist schuld!
Log Correlation?
Der Heilige Gral. Im Log steht die Trace ID ([INFO] trace_id=abc). Im Trace Tool klickst du auf "Show Logs" und siehst genau die Logs von diesem Request. Ohne ID suchst du die Nadel im Heuhaufen.Root Span?
Der allererste Span (meist Ingress oder Frontend), der die Trace ID generiert hat. Er hat keinen Parent. Alle anderen sind Kinder oder Enkel.Auto-Instrumentation?
Java/Python Agents können JDBC (Datenbank) Aufrufe automatisch tracen ("SELECT * FROM..."), ohne dass du Code ändern musst. Sie wrappen den Driver.
Schritt 30 / 65
OpenTelemetry (OTel)
Traces, Logs und Metriken verbinden.
S2
Schritt 30 / 65
OpenTelemetry (OTel)
Traces, Logs und Metriken verbinden.
1. Verstehen
Früher war Monitoring ein Chaos. Für Logs nahmst du "Log4j". Für Metriken "Prometheus Client". Für Tracing "Jaeger Agent". Jede Library sprach eine andere Sprache. Wenn du das Tool wechseln wolltest, musstest du deinen Code umschreiben. OpenTelemetry beendet das Chaos. Es ist ein Standard (wie USB). Du baust OTel in deine App ein ("Sende Daten"). OTel kümmert sich darum, wohin die Daten gehen (zu Prometheus, zu Datadog, zu NewRelic). Es vereint Logs, Metrics und Traces in einem einzigen SDK.
Merksatz: Ein CNCF-Framework, das Standards, Bibliotheken und Agenten bereitstellt, um Telemetriedaten (Logs, Metriken, Traces) herstellerunabhängig zu sammeln und zu exportieren.
2. Anwenden
- Auto-Instrumentation:
In Java oder Node.js startest du deine App mit einem Agenten:
java -javaagent:opentelemetry-javaagent.jar -jar myapp.jarDu musst keine einzige Zeile Code ändern! Der Agent sieht automatisch HTTP Requests und DB Queries und sendet sie. - Collector: Die Daten gehen meist an einen OTel Collector (ein kleiner Server). Der Collector verteilt sie: "Metriken an Prometheus, Traces an Jaeger".
Praxisroutine
In der Praxis lernst du OpenTelemetry (OTel), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Context Propagation (Baggage)
Wie weiß Service B, dass der Request von Service A (User X) kommt?
OTel injiziert HTTP Header (traceparent).
Service B liest diese Header und führt den Trace fort.
Zusätzlich gibt es Baggage: Key-Value Paare, die mitreisen.
baggage: premium-user=true.
Service C (ganz hinten) kann das lesen und den DB-Query priorisieren, ohne dass Service A und B den Code ändern mussten. Die Metadaten "fliegen einfach mit".
2. Sampling Strategien
Du kannst nicht 100% aller Traces speichern (zu teuer bei 10k Requests/s).
- Head-Sampling: Entscheidung am Anfang (Service A). "Trace 1 ja, Trace 2 nein". Schnell, aber man verpasst Fehler in Service C.
- Tail-Sampling: Entscheidung am Ende (im Collector). "Sammle alle Teile. War ein Fehler dabei? Ja -> Speichern. Nein -> Verwerfen." Teurer (RAM Buffer), aber man erwischt jeden Fehler.
3. Vendor Lock-in Exit
OTel ist der Albtraum für kommerzielle Anbieter (Datadog/NewRelic).
Früher warst du an deren Agenten gebunden.
Heute nutzt du OTel.
Wenn Datadog zu teuer wird, änderst du eine Zeile im OTel Collector Config (exporters: [prometheus]) und bist weg.
Deine App muss nicht neu deployt werden.
4. Vertiefen
Trace Context (W3C vs B3)
Damit ein Trace ("#4F3A") über Netzwerk-Grenzen hinweg am Leben bleibt, injiziert und extrahiert OTel definierte HTTP-Header. Früher kochte hier jeder sein eigenes Süppchen (Zipkin nutzte B3-Header X-B3-TraceId, Jaeger nutzte uber-trace-id). OTel pusht radikal den standardisierten W3C Trace Context.
Ein Header sieht so aus: traceparent: 00-4bf92f...-00f067...-01.
Er enthält die Version, die extrem wichtige Trace-ID (für den gesamten Pfad), die Parent-Span-ID (für den konkreten Aufrufer) und Flags (z.B. ob dieser Trace gesampelt, also gespeichert werden soll). Wenn dein Backend diesen Header per Middleware nicht aktiv weiterreicht, "bricht" der Trace in zwei isolierte Hälften.
Der OTel Collector Pipeline-Mechanismus
Der OTel Collector ist kein stumpfer Router, er ist eine komplexe Data-Pipeline (Receiver -> Processor -> Exporter).
Gerade der Processor ist in Production elementar. Er betreibt Batching (Sammelt 10k Spans und sendet sie gebündelt alle 5 Sekunden), Memory-Limiting (Wirft Spans weg, bevor der OTel Collector an OOM stirbt) und "PII Redaction". Wenn ein Entwickler versehentlich Kreditkarten in Logs pumpt, fängt eine Regex-Regel im Processor das ab und maskiert es (XXXX-XXXX), bevor es Datadog oder Jaeger berührt.
Probabilistic vs. Tail-Based Sampling
OTel generiert bei High-Traffic rasend schnell Terabytes an Logs. Beim Head-Based / Probabilistic Sampling wirft der Agent direkt an der Quelle (z.B. im Load Balancer) per Zufallswert 95% der Requests unwiderruflich weg (Drop). Das ist billig, aber du verlierst genau die 1% Error-Requests, die nachts gekracht sind! Enterprise-Lösungen nutzen Tail-Based Sampling. Jeder Span fließt zum OTel Collector. Der Collector ist ein gigantischer Ring-Buffer im RAM. Er wartet das Ende der Transaktion ab. Ist der HTTP-Status 200, wirft er den Trace in den Müll. Ist der Status 500 (Error) oder sehr langsam (>2s), pickt er alle Fragmente aus dem RAM zusammen und exportiert sie. Man sammelt also selektiv "Nadeln", ohne den Heuhaufen zu bezahlen.
5. Prüfen
Ersetzt OTel Prometheus?
Nein. OTel erzeugt und sammelt die Daten. Prometheus speichert sie. OTel ist der Lieferant, Prometheus das Lager. OTel hat kein eigenes Backend/UI.Was ist W3C Trace Context?
Der Standard Header (traceparent), den OTel nutzt. Früher hatte ZipkinX-B3-TraceId, Google hatte andere. Jetzt verstehen sich alle Tools dank W3C Standard.Logs in OTel?
Noch in "Beta/Stable". OTel versucht, Logs zu strukturieren und mit Traces zu verknüpfen ("Zeige mir die Logs genau für diesen Request"). Das ist mächtiger als reine Textsuche.
Zusammenfassung
- Früher war Monitoring ein Chaos. Für Logs nahmst du "Log4j". Für Metriken "Prometheus Client". Für Tracing "Jaeger Agent". Jede Library sprach eine andere Sprache. Wenn du das Tool wechseln wolltest, musstest du deinen Code umschreiben. OpenTelemetry beendet...
- Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
Optionale Praxisaufgabe
- Erkläre OpenTelemetry (OTel) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem OpenTelemetry (OTel) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Jaeger S3
Überblick: In einem Monolithen (eine große App) ist Debuggen einfach. Stacktrace lesen. In Microservices (50 kleine Apps) ist es die Hölle. User drückt "Bestellen". Nichts passiert. War es der Frontend-Server? Der Payment-Service? Das Inventory? Die Datenbank? Jaeger ist ein Detektiv (Tracer). Er gibt dem Request am Anfang eine ID ("Trace ID"). Diese ID wird von Service zu Service weitergereicht. Am Ende malt Jaeger ein Bild (Gantt-Chart): "Frontend (10ms) - Inventory (500ms!) - Payment (20ms)". Du siehst sofort: Das Inventory ist schuld.
Einfach erklärt: Entwickelt von Uber. Standard für Kubernetes. Du musst deinen Code anpassen (Instrumentation): "Starte Span 'DB-Query'..." - "Beende Span". Dank OpenTelemetry geht das heute oft automatisch (Auto-Instrumentation), ohne Code zu ändern.
Warum der Name?
Nach den Jägern aus dem Film "Pacific Rim" (die riesige Roboter steuern). Oder einfach deutsch "Jäger" (Hunter).Unterschied zu Logs?
Logs sind isolierte Punkte ("Hier Fehler"). Tracing ist die Linie, die die Punkte verbindet ("Weg des Requests"). Logs erzählen was, Tracing erzählt wo und wie lange.Ist es schwer einzubauen?
Ja. Es ist der aufwendigste Teil von Observability. Aber für Microservices überlebenswichtig.
Schritt 31 / 65
Prometheus
Metriken sammeln und auswerten.
S1
Schritt 31 / 65
Prometheus
Metriken sammeln und auswerten.
1. Verstehen
Wenn du Auto fährst, schaust du auf den Tacho: "Wie schnell bin ich? Habe ich noch Benzin?" Bei Servern ist es genauso. Prometheus ist der Tacho für deine Infrastruktur. Es fragt alle 10 Sekunden deine Server: "Wie viel CPU nutzt du?" "Wie viel RAM ist frei?" "Wie viele Fehler gab es?" Es speichert diese Zahlen (Metriken) in einer Zeitreihe.
Merksatz: Ein Open-Source-Monitoring-System, das Metriken von Systemen sammelt und speichert, um Probleme zu erkennen.
Lernbruecke für Anfänger
Wenn du bei Prometheus ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Metriken sammeln und auswerten. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Prometheus "pullt" (zieht) Daten.
Deine App stellt eine Seite /metrics bereit.
Dort steht:
cpu_usage 45%
requests_total 1024
Prometheus besucht diese Seite regelmäßig und speichert die Werte.
Wenn ein Wert kritisch wird (CPU > 90%), kann es Alarm schlagen (Alertmanager).
Praxisroutine
In der Praxis lernst du Prometheus, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. TSDB (Time Series Database)
Prometheus ist keine normale Datenbank (SQL). Es ist spezialisiert auf Zeitreihen. Es speichert nicht "Wer ist User X?", sondern "Wie war Wert Y um 12:00, 12:01, 12:02?". Das ist extrem effizient komprimiert.
2. PromQL
Die Abfragesprache.
rate(http_requests_total[5m])
"Zeige mir die Rate der Anfragen pro Sekunde im Durchschnitt der letzten 5 Minuten."
Mächtig, aber man muss Mathe mögen.
Technische Einordnung im System
Technisch ist Prometheus nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. Architektur (Borgmon Heritage)
Prometheus kopiert massiv das Design von Googles internem "Borgmon" Tacho. Die Kernphilosophie ist das strikte Vermeiden von Single-Points of Failure durch Clustering-Abhängigkeiten. Ein Prometheus-Server ist 100% autark. Er benötigt keine externe Datenbank, kein Kafka, kein Zookeeper. Er läuft als monolithischer Binärprozess und schreibt seine Time-Series Daten in lokale Flat-Files in Chunks. Das bedeutet: Bricht dein kompletter Kubernetes-Cluster durch einen Netzwerk-Ausfall weg, läuft der kleine Prometheus-Knoten auf der Eck-Hardware munter weiter und sendet verlässlich PagerDuty-SMS, weil er sich nicht auf abstrakte Service-Meshes verlässt.
2. Labels und Cardinality (Der Tod durch Tags)
Metriken in Prometheus sind nicht nur Namen (http_requests), sondern n-dimensionale Arrays via Labels: http_requests{status="500", path="/login", method="POST"}.
Jede einzigartige Kombination der Labels erzeugt in der Engine eine brandneue Time-Series (Cardinality).
Der tödlichste Anfängerfehler: Man nutzt User-IDs als Label (http_requests{status="200", user_id="84192"}).
Bei 1 Million Usern explodiert die Kardinalität. Prometheus versucht 1 Million Time-Series im RAM zu halten und crasht gnadenlos mit "Out of Memory". Metrik-Labels dürfen niemals hoch-dynamische unbounded Daten (IPs, UUIDs, Tokens) enthalten, sondern nur Kategorien (HTTP-Status, Environment, Pod-Name).
3. Compaction und Storage Retention
Um Speicher vollgepackt mit Millisekunden-Daten effizient zu handhaben, schreibt Prometheus zunächst nur in einen Write-Ahead-Log (WAL) und hält 2 Stunden rohe Daten im RAM (Head Block). Danach schneidet es den RAM-Block ab und schreibt einen persistenten Disk-Block. Später wendetet die Engine Compaction an: Sie nimmt mehrere alte kleine 2-Stunden-Blöcke und "kompiliert" sie zu großen, stark zippierten Delta-Encodings zusammen. Prometheus ist historisch nicht für Langzeit-Speicherung gedacht (Default Retention: 15 Tage). Will man 5 Jahre an Metriken aufheben (für ML / Capacity Planning), konfiguriert man das Remote Write API. Prometheus feuert die Datenpakete an Thanos oder Cortex weiter, die diese ewig-persistierten Brocken geballt in billige Amazon S3 Object Stores werfen.
5. Prüfen
Kann Prometheus Grafiken anzeigen?
Ja, aber sie sind hässlich. Deshalb nutzt fast jeder Grafana dazu. Prometheus sammelt die Daten, Grafana malt die Bilder.Was ist der Unterschied zu Logging (ELK)?
Prometheus speichert Zahlen ("CPU ist hoch"). Logging speichert Text ("Error: Datei nicht gefunden"). Man braucht beides.Warum "Pull" statt "Push"?
Damit Prometheus nicht überflutet wird. Wenn die App verrückt spielt und 1 Million Nachrichten sendet, bricht ein Push-System zusammen. Bei Pull entscheidet Prometheus, wie oft es fragt (drosselt das Tempo).
Zusammenfassung
- Wenn du Auto fährst, schaust du auf den Tacho: "Wie schnell bin ich? Habe ich noch Benzin?" Bei Servern ist es genauso. Prometheus ist der Tacho für deine Infrastruktur. Es fragt alle 10 Sekunden deine Server: "Wie viel CPU nutzt du?" "Wie viel RAM ist frei?"...
- Prometheus "pullt" (zieht) Daten. Deine App stellt eine Seite /metrics bereit. Dort steht: cpuusage 45% requeststotal 1024 Prometheus besucht diese Seite regelmäßig und speichert die Werte. Wenn ein Wert kritisch wird (CPU 90%), kann es Alarm schlagen...
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre Prometheus in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Prometheus relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Kubernetes S1
Überblick: Stell dir vor, du hast 1 Container (Lunchbox). Den trägst du leicht selbst. Stell dir vor, du hast 10.000 Container (einen Frachtschiff-Hafen). Du brauchst einen Kranführer, der den Überblick behält. "Container A muss auf Schiff B. Container C ist abgestürzt, wir brauchen einen neuen." Kubernetes (K8s) ist dieser Kranführer für Software-Container. Es wurde von Google erfunden (die starten Milliarden Container pro Woche) und steuert riesige Server-Flotten automatisch.
Einfach erklärt: Du sagst Kubernetes nicht: "Starte Server X". Du gibst ihm einen Wunschzettel (YAML-Datei): "Ich hätte gerne immer 3 Kopien meiner Webseite. Sie sollen auf Servern mit viel RAM laufen." Kubernetes macht den Rest: Es sucht freie Server. Es startet die 3 Kopien. Wenn eine abstürzt, startet es sofort eine neue (Self-Healing).
Tiefer verstanden: Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Ist Kubernetes schwer?
Ja, extrem. Es gilt als eines der komplexesten Tools der IT. Für kleine Webseiten ist es völliger Overkill ("Kanonen auf Spatzen"). Da reicht Docker Compose.Was heißt "K8s"?
Zwischen dem "K" und dem "s" stehen 8 Buchstaben (ubernete). IT-ler sind faul beim Tippen. (Genauso wie "i18n" für Internationalization).Wer nutzt es?
Fast jeder Enterprise-Konzern (Spotify, Adidas, Mercedes). Es ist der Standard für moderne Cloud-Infrastruktur.
Logging S1
Überblick: Logging bedeutet, dass Software wichtige Ereignisse protokolliert. Ein Log kann zeigen, wann ein Dienst gestartet ist, welche Anfrage fehlgeschlagen ist oder welcher Fehler aufgetreten ist. Ohne Logs ist Fehlersuche oft Raten.
Einfach erklärt: Bei Störungen liest man Logs, um Ursache, Zeitpunkt und betroffene Komponente zu finden. Gute Logs enthalten Kontext wie Request-ID, Nutzerrolle, Job-ID oder Fehlercode. Private Inhalte und Secrets gehoeren nicht in Logs.
Tiefer verstanden: Professionelles Logging nutzt Level wie debug, info, warn und error. Strukturierte Logs als JSON lassen sich besser durchsuchen. In verteilten Systemen werden Logs mit Metriken und Traces kombiniert, damit ein Fehler über mehrere Dienste hinweg nachvollziehbar bleibt.
Praxisgrenze: Zu wenig Logging macht Diagnose blind, zu viel Logging erzeugt Kosten und Datenschutzrisiken. Logs können sensible Daten enthalten und müssen deshalb minimiert, geschützt und nach Frist geloescht werden. Ein Log ohne Alerting und Verantwortlichkeit hilft im Ernstfall zu spaet.
Warum braucht man Logs?
Sie zeigen, was ein System wann getan hat und helfen bei Fehleranalyse und Betrieb.Was gehört nicht in Logs?
Passwörter, Tokens, private Dateiinhalte und unnötige personenbezogene Daten.Was ist strukturierter Log?
Ein Log mit festen Feldern, oft JSON, das Maschinen gut filtern und auswerten können.
Schritt 32 / 65
Grafana
Betriebsdaten sichtbar machen.
S1
Schritt 32 / 65
Grafana
Betriebsdaten sichtbar machen.
1. Verstehen
Daten sind oft langweilig (Zahlenkolonnen in Excel oder Datenbanken). Grafana macht sie sexy. Es ist ein Tool, um Dashboards zu bauen. Du verbindest es mit deinen Daten (z. B. Prometheus). Dann klickst du dir bunte Kurven, Tachos und Weltkarten zusammen. "Wie viele Besucher sind gerade auf der Webseite?" -> Eine Live-Kurve, die nach oben geht. Das hängt in vielen IT-Büros auf großen Fernsehern an der Wand.
Merksatz: Eine Open-Source-Plattform zur Visualisierung und Analyse von Daten aus verschiedenen Quellen in interaktiven Dashboards.
2. Anwenden
Das Geniale: Es ist Quellen-agnostisch. Ein Dashboard kann Daten anzeigen aus:
- Prometheus (Server-Last).
- MySQL (Umsatz).
- Elasticsearch (Log-Fehler). Alles auf einem Bildschirm. Wenn die Server-Last hochgeht und gleichzeitig der Umsatz einbricht, siehst du sofort den Zusammenhang.
Praxisroutine
In der Praxis lernst du Grafana, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Alerting
Grafana kann nicht nur malen, sondern auch wecken. "Wenn die Linie im Diagramm A über 80% steigt, schicke eine Nachricht in den Slack-Channel #alerts." Das macht es zur Steuerzentrale für Ops-Teams.
2. Plug-ins
Es gibt tausende Plug-ins. Weltkarten? Ja. Tortendiagramme? Ja. Interaktive Baupläne vom Rechenzentrum? Ja. Du kannst es extrem anpassen.
Technische Einordnung im System
Technisch ist Grafana nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. Time-Series Fokus & Renderning-Architektur
Grafana ist architektonisch extrem optimiert auf Time-Series Data (Zeitreihen).
Eine MySQL Tabelle mit Millionen Nutzern bringt Grafana zu Fall, wenn sie nicht strikt zeitindiziert abgefragt wird. Die Grafana Backend-Engine fragt über APIs Zeitfenster ab. Wenn du im UI die Range "Letzte 7 Tage" wählst, rechnet Grafana die Bildschirmpixel aus ("Du hast einen 1920px Monitor") und interpoliert / downsampled dynamisch ($__interval), sodass die Datenbank keine 1 Milliarde Datenpunkte schickt, sondern exakt nur die 1920 Punkte, die Grafana auf der X-Achse malen kann.
2. InfluxDB, Prometheus & The Data Source Ecosystem
Grafana selbst hat keine Ahnung, was "CPU Auslastung" ist. Es ist abhängig vom Connector-Plugin der Data Source.
- Prometheus: Für Metrics. (Grafana nutzt PromQL).
- Loki: Für Text-Logs, wie ein grep auf Steroiden. (Grafana nutzt LogQL).
- Tempo: Für Distributed Tracing (Wo bleibt der HTTP Request im Backend stecken?).
Dashboards speichern in einem dicken JSON-Objekt (
dashboard.json) nur das Frontend-Skelett: "Zeichne ein grünes Panel, frag Quelle Loki, setz Achse Y auf Max 100". Wer Grafana via DevOps managed, klickt keine Diagramme zusammen, sondern pflegt hunderte JSON-Files via Git (Dashboard als Code / Provisioning).
3. Roll-up und Retention-Herausforderungen
Ein großes Problem beim Dashboarding über lange Zeiträume: High-Resolution. Zeichnest du die CPU-Peaks (alle 5 Sekunden) über 6 Monate zurück, platzt der Grafana-Server beim Laden. Das Problem muss an der Quelle repariert werden (Continuous Queries / Recording Rules). DevOps Teams setzen Skripte in die Datenbank auf, die jede Nacht die 5-Sekunden-Daten zu groben "Tages-Durchschnittswerten" (Roll-ups) zusammenkneten. Fragt Grafana nach den Daten von letztem Jahr, schwenkt die Data Source um und liefert den kleinen Roll-Up-Cube, andernfalls rennt Grafana in Timeout-Crashs.
5. Prüfen
Speichert Grafana Daten?
Nein. Es zeigt sie nur an. Wenn du die Datenbank löschst, ist Grafana leer. Es ist nur das "Fenster" zu deinen Daten.Ist es schwer?
Nein, sehr intuitiv (Klickibunti). Aber die Abfragen (SQL, PromQL) im Hintergrund müssen stimmen. Wenn du Müll abfragst, zeigt Grafana eine schöne Müll-Kurve an.Kostet es Geld?
Die Basis-Version (OSS) ist kostenlos. Es gibt "Grafana Enterprise" und "Grafana Cloud" mit mehr Features.
Zusammenfassung
- Daten sind oft langweilig (Zahlenkolonnen in Excel oder Datenbanken). Grafana macht sie sexy. Es ist ein Tool, um Dashboards zu bauen. Du verbindest es mit deinen Daten (z. B. Prometheus). Dann klickst du dir bunte Kurven, Tachos und Weltkarten zusammen. "Wie...
- Das Geniale: Es ist Quellen-agnostisch. Ein Dashboard kann Daten anzeigen aus: Prometheus (Server-Last). MySQL (Umsatz). Elasticsearch (Log-Fehler). Alles auf einem Bildschirm. Wenn die Server-Last hochgeht und gleichzeitig der Umsatz einbricht, siehst du...
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre Grafana in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Grafana relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 33 / 65
Reverse Proxy
Backends kontrolliert nach außen veröffentlichen.
S2
Schritt 33 / 65
Reverse Proxy
Backends kontrolliert nach außen veröffentlichen.
1. Verstehen
Der normale Proxy schützt den User (versteckt ihn).
Der Reverse Proxy schützt den Server (versteckt ihn).
Wenn du google.com aufrufst, landest du nie auf dem Computer, der die Suche berechnet.
Du landest auf einem Reverse Proxy (an der Tür).
Er sagt: "Willkommen! Du willst suchen? Geh zu Server 5."
Für dich sieht es aus, als wäre der Proxy der Server.
Er macht Security, Lastverteilung und Verschlüsselung zentral an einer Stelle.
Merksatz: Ein Server, der Anfragen aus dem Internet entgegennimmt und an einen oder mehrere interne Backend-Server weiterleitet.
2. Anwenden
Das Standard-Setup für jede moderne App:
User -> Internet -> Nginx (Reverse Proxy) -> Node.js (App)
Warum nicht direkt Node.js ans Internet?
- SSL Termination: Nginx ist schneller im Verschlüsseln. Node.js muss sich nicht mit Zertifikaten quälen.
- Sicherheit: Nginx ist hart und getestet. Node.js hat vielleicht Bugs.
- Caching: Nginx speichert Bilder im RAM und liefert sie rasend schnell.
Praxisroutine
In der Praxis lernst du Reverse Proxy, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Load Balancing
Der Reverse Proxy kennt 10 Backend-Server. Algorithmen:
- Round Robin: 1, 2, 3, 1, 2, 3...
Least Connections: Wer hat am wenigsten zu tun?
Musterantwort: Beginne mit dem konkreten Fall, prüfe die Fakten und erkläre den Begriff daran. Für diesen Abschnitt gilt: Das Standard-Setup für jede moderne App: User - Internet - Nginx (Reverse Proxy) - Node.js (App) Warum nicht direkt Node.js ans Internet? 1. SSL Termination: Nginx ist schneller im Verschlüsseln. Node.js muss sich nicht mit Zertifikaten quälen. 2. Sicherheit: Nginx ist hart und getestet. Node.js hat vielleicht Bugs. 3. Caching: Nginx speichert Bilder im RAM und liefert sie rasend schnell.- IP Hash: "User A landet immer auf Server 1". (Sticky Session). Wichtig, wenn Session-Daten lokal gespeichert sind.
2. Buffering & Slowloris Protection
Node.js (Single Threaded) hasst langsame Clients. Wenn ein Mobile-User 10 Sekunden braucht, um 1KB zu senden, ist der Node-Thread blockiert. Nginx puffert. Er saugt den Request langsam vom User auf, und schießt ihn dann in 1ms an Node.js weiter. Schützt vor Slowloris-Attacken.
3. API Gateway
Ein aufgebohrter Reverse Proxy (z. B. Kong, Traefik). Macht zusätzlich: Authentication (OAuth prüfen), Rate Limiting ("Max 100 Requests/Min"), Logging, Billing.
4. Vertiefen
Zero-Downtime Reloads im Nginx
Ein extrem starkes Feature von industriellen Proxys ist der Konfigurations-Reload ohne verlorene Requests (nginx -s reload).
Der Proxy läuft klassisch im Master-Worker Modell. Ändert der Ops das Config-File, schießt er das SIGHUP Signal an den Master-Prozess. Der Master fährt daraufhin neue Worker-Prozesse auf dem aktualisierten Stand hoch. Die alten Worker-Thread beenden sofort das Akzeptieren von neuen TCP-Handshakes, arbeiten aber brav noch laufende Gigabyte-Downloads ab. Erst wenn der letzte User abgekoppelt ist, sterben die alten Threads friedlich. Kein User spürt, dass der Load Balancer umzog.
SSL Passthrough vs. SSL Termination via SNI
Meist entschlüsselt Nginx in der DMZ und pumpt HTTP (Plaintext) zum Node-Backend ins Private Subnet (SSL Termination).
Sehr harte Compliance (Banken) verlangt jedoch oft End-to-End, bis in den RAM des Kern-Servers ("Deep im LAN"). Dies löst man per SSL Passthrough auf TCP-Layer-4 Basis (Nginx stream block). Der Proxy fasst die Verschlüsselung nicht an.
Das Problem: Ohne Decryption kann der Proxy die Hostnamen-Header (Host: shop.tld) im HTTP-Kopf nicht lesen – wie soll er routen? Die Lösung ist SNI (Server Name Indication). Bereits im unverschlüsselten ClientHello Handshake am Start des TCP-Pakets funkt der moderne Browser den gewünschten Hostnamen. Der Proxy liest diesen String und fädelt den Black-Box-TCP-Stream blind an das richtige interne Backend.
The Upstream Gateway Timeout Mismatch (504)
Einer der häufigsten DevOps-Fehler in Microservices: Ungleiche Timeouts.
Der Reverse Proxy hat ein proxy_read_timeout von 60s. Der interne Express.js-Server verarbeitet einen brutalen Report (80s). Nach 60s wirft der Proxy resigniert den harten 504 Gateway Timeout zum Client im Browser.
Fatal: Das Node-Backend rödelt trotzdem stur weiter, zerschießt die Datenbank und sendet das Ergebnis 20 Sekunden später per "Broken Pipe" in eine tote Proxy-Wall. Um das zu vermeiden, muss das App-Backend entweder eine harte Timeout-Middleware vorweisen (< 60s Drop), oder der Proxy extrem große Timeouts bei Long-Running API Endpoints genehmigt bekommen.
5. Prüfen
Ingress (K8s)?
Ein Reverse Proxy, der von Kubernetes gesteuert wird. Er route Traffic basierend auf Hostnames (foo.com-> Service A,bar.com-> Service B).X-Forwarded-For?
Das Backend sieht nur die IP vom Proxy (z. B. 127.0.0.1). Damit das Backend die echte User-IP kennt, schreibt der Proxy sie in diesen HTTP-Header.HAProxy?
Ein High-Performance reiner Load Balancer/Proxy. Weniger Features als Nginx (kein Webserver), aber extrem stabil und schnell für TCP-Traffic.
Zusammenfassung
- Der normale Proxy schützt den User (versteckt ihn). Der Reverse Proxy schützt den Server (versteckt ihn). Wenn du google.com aufrufst, landest du nie auf dem Computer, der die Suche berechnet. Du landest auf einem Reverse Proxy (an der Tür). Er sagt:...
- Das Standard-Setup für jede moderne App: User - Internet - Nginx (Reverse Proxy) - Node.js (App) Warum nicht direkt Node.js ans Internet? 1. SSL Termination: Nginx ist schneller im Verschlüsseln. Node.js muss sich nicht mit Zertifikaten quälen. 2. Sicherheit:...
Optionale Praxisaufgabe
- Erkläre Reverse Proxy in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Reverse Proxy relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Proxy (Forward Proxy) S1
Überblick: Ein Mittelsmann. Du (in der Firma) willst auf facebook.com. Der Chef hat das gesperrt. Du verbindest dich mit einem Proxy-Server. Du sagst: "Hol mir bitte facebook.com". Der Proxy holt die Seite und gibt sie dir. Für Facebook sieht es so aus, als wäre der Proxy der Besucher. Deine IP bleibt geheim. Für den Chef sieht es so aus, als würdest du nur mit dem Proxy reden (wenn er verschlüsselt ist).
Einfach erklärt: In Firmen: Zwangsproxy. Jeder Mitarbeiter muss durch den Proxy gehen. Der Proxy: 1. Scannt auf Viren. 2. Blockiert Pornografie. 3. Loggt, wer wie lange surft.
Proxy vs. VPN?
Proxy schützt meist nur den Browser (App-Ebene). VPN schützt den ganzen PC (alle Programme). VPN ist verschlüsselt, Proxy oft nicht.Squid?
Der berühmteste Linux-Proxy. Diente früher primär zum Cachen (Webseiten speichern, damit sie beim zweiten Mal schneller laden). Heute ist Caching dank HTTPS und dynamischem Web fast tot.Open Proxy?
Ein Proxy ohne Passwort im Internet. Hacker nutzen diese "Zombies", um Angriffe zu verschleiern. Wirst du erwischt, landest du auf Blacklists.
Schritt 34 / 65
Load Balancer
Last auf mehrere Systeme verteilen.
S1
Schritt 34 / 65
Load Balancer
Last auf mehrere Systeme verteilen.
1. Verstehen
Stell dir eine Supermarkt-Kasse vor. Wenn 100 Kunden an einer Kasse stehen, dauert es ewig. Die Kassiererin bricht zusammen. Ein Load Balancer ist der Mitarbeiter, der am Eingang steht: "Kasse 1 ist voll? Geh bitte zu Kasse 2. Kasse 2 voll? Kasse 3 ist frei!" Er verteilt die Last (Kunden) gerecht auf alle verfügbaren Ressourcen (Server). So stürzt kein Server ab, und alle Kunden werden schnell bedient.
Merksatz: Ein Gerät oder Software, die eingehenden Netzwerkverkehr auf mehrere Server verteilt, um Ausfälle zu vermeiden und die Last zu optimieren.
2. Anwenden
Webseiten wie Facebook haben nicht einen Server, sondern Tausende.
Die Adresse facebook.com zeigt auf einen riesigen Load Balancer.
Der schickt dich zu Server Nr. 4821 (der vielleicht gerade wenig zu tun hat).
Wenn Server Nr. 4821 kaputt geht, merkt der Load Balancer das sofort ("Health Check") und schickt keine Kunden mehr hin. Du merkst nichts davon.
Praxisroutine
In der Praxis lernst du Load Balancer, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Algorithmen
Wie entscheidet er?
- Round Robin: Der Reihe nach. 1, 2, 3, 1, 2, 3... (Einfach).
- Least Connections: Wer hat gerade die wenigsten offenen Verbindungen? (Schlau).
- IP Hash: User X landet immer auf Server A (wichtig, wenn Server A den Warenkorb gespeichert hat - "Sticky Session").
2. Layer 4 vs. Layer 7
- Layer 4 (Transport): Guckt nur auf IP und Port. "Paket an Port 80? Weiter zu Server 1." (Extrem schnell).
- Layer 7 (Application): Guckt in den Inhalt. "Ist das eine Anfrage für /bilder? Dann zu den Bilder-Servern. Ist es /video? Zu den Video-Servern." (Intelligenter, aber rechenintensiver).
4. Vertiefen
1. Consistent Hashing (Memcached/Redis)
Die Verteilung von User-Requests (IP Hash) auf Server hat einen fatalen Designfehler (Das "Modulo N" Problem). Hast du 5 Server und verteilst die API-Keys per Modulo (Hash(API-Key) % 5), landet der Key "123" immer auf Server 3. Fällt Server 3 aus (N=4), ändert sich der Modulo global. Plötzlich routet der LB jeden einzelnen Kunden auf den falschen Server. Bei Cache-Systemen (Redis) bedeutet das, der Cache ist tot.
Die Architektur-Lösung der Großkonzerne ist Consistent Hashing: Server und User-Anfragen werden mathematisch auf einen "Ring" (Werte 0-360) geworfen. User landen bei dem Server, der ihnen im Uhrzeigersinn am nächsten steht. Fällt ein Server aus, wandern nur dessen direkte Kunden zum Nachbarn weiter. Die anderen 80% des Clusters bleiben ungestört.
2. DSR (Direct Server Return)
Beim klassischen Layer-4 Balancing ist der Load Balancer der pure Flaschenhals. Ein Client fordert via LB ein 5 GB Video von YouTube an. Der Server schickt die 5 GB über den LB zurück. Der LB stirbt am Outbound-Traffic. Bei Direct Server Return (DSR) manipuliert der LB nur die MAC-Adresse der eingehenden Request-Pakete, belässt aber die Ziel-IP unangetastet. Der Worker-Server antwortet synchron dem Client, indem er die Outbound-Route komplett am LB vorbei ins Backend-Netz nimmt. Das eingehende LB-Traffic-Volumen (< 1%) ist entkoppelt vom massiven Server-Outbound (99%), was asymmetrische Skalierung extremer Datenlasten ermöglicht.
3. DNS-Level Cloud Balancing (Global Traffic)
Wenn Facebook User in Japan aus Asien bedienen muss und Europäer aus Irland, reicht ein "lokaler" Load Balancer im Rechnerzentrum (HAProxy) nicht. Sie nutzen Global Server Load Balancing (GSLB) via DNS.
Tippst du facebook.com ein, geht die Anfrage an den DNS-Nameserver (z.B. Route53). Dieser fungiert heimlich als globaler Geo-Balancer. Er prüft die IP des anfragenden Users, schaut in einer Datenbank nach Asien ("GeoIP"), testet im Hintergrund via Health-Check, ob das RZ in Tokyo lebt, und liefert dir nicht plump irgendeine IP zurück, sondern als DNS-Antwort die IP des Tokioter Reverse-Proxys.
5. Prüfen
Brauche ich das für meinen Blog?
Nein. Ein Server schafft locker 1000 Besucher gleichzeitig. Load Balancer brauchst du, wenn du Millionen Hits hast (High Traffic).Was ist Hardware vs. Software LB?
Früher waren es teure Spezial-Geräte (F5 Big-IP). Heute macht man das meist per Software (Nginx, HAProxy) oder direkt in der Cloud (AWS ELB).Ist er ein Single Point of Failure?
Ja! Wenn der Verteiler ausfällt, kommt niemand mehr zu den Servern. Deshalb hat man meistens zwei Load Balancer, die sich gegenseitig überwachen (Failover).
Zusammenfassung
- Stell dir eine Supermarkt-Kasse vor. Wenn 100 Kunden an einer Kasse stehen, dauert es ewig. Die Kassiererin bricht zusammen. Ein Load Balancer ist der Mitarbeiter, der am Eingang steht: "Kasse 1 ist voll? Geh bitte zu Kasse 2. Kasse 2 voll? Kasse 3 ist frei!"...
- Webseiten wie Facebook haben nicht einen Server, sondern Tausende. Die Adresse facebook.com zeigt auf einen riesigen Load Balancer. Der schickt dich zu Server Nr. 4821 (der vielleicht gerade wenig zu tun hat). Wenn Server Nr. 4821 kaputt geht, merkt der Load...
Optionale Praxisaufgabe
- Erkläre Load Balancer in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Load Balancer relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
API Gateway S1
Überblick: Stell dir ein riesiges Hotel vor (deine Software). Es gibt Köche, Putzkräfte, Elektriker (Microservices). Gäste (Nutzer) sollen aber nicht direkt in die Küche rennen, um Essen zu bestellen. Sie gehen zur Rezeption. Die Rezeption ist das API Gateway. Sie nimmt alle Wünsche entgegen. Sie prüft: "Sind Sie Gast hier?" (Sicherheit). Sie leitet den Wunsch an die richtige Abteilung weiter ("Küche, einmal Pizza für Zimmer 101").
Einfach erklärt: Wenn du eine App baust, willst du nicht, dass die App 50 verschiedene Server-Adressen kennen muss (auth-server.com, user-server.com, payment-server.com). Die App kennt nur eine Adresse: api.meine-app.com. Das Gateway dahinter sortiert: /login - geht zum Auth-Service. /pay - geht zum Payment-Service.
Ist das nicht ein "Single Point of Failure"?
Ja! Wenn die Rezeption brennt, kommt niemand mehr ins Hotel. Deshalb betreibt man Gateways oft im Cluster (mehrere Rezeptionisten).Was ist der Unterschied zum Load Balancer?
Ein Load Balancer verteilt Last innerhalb einer Gruppe gleicher Server (Webserver 1, 2, 3). Ein API Gateway verteilt Anfragen basierend auf Inhalt an verschiedene Services (/users, /billing) und macht dazu noch Logik wie Auth.Muss ich das selbst programmieren?
Bloß nicht. Nimm fertige Lösungen (Kong, Traefik, Nginx). Die sind millionenfach getestet und sicher.
Cloud Computing S1
Überblick: "Die Cloud" ist einfach nur der Computer von jemand anderem. Statt deine Fotos auf deiner Festplatte zu speichern, speicherst du sie auf den Festplatten von Google oder Apple. Statt einen teuren Server in den Keller zu stellen, mietest du Rechenpower bei Amazon (AWS).
Einfach erklärt: Wir nutzen die Cloud ständig: 1. SaaS (Software as a Service): Netflix, Gmail, Spotify. Die App läuft nicht bei dir, sondern auf deren Servern. 2. IaaS (Infrastructure as a Service): Als Firma mietest du "nackte" Server bei AWS, um darauf deine eigene Software laufen zu lassen. 3. Storage: Dropbox, Google Drive, iCloud. Deine Dateien sind überall verfügbar, egal ob Handy oder Laptop.
Wo sind meine Daten, wenn sie "in der Cloud" sind?
Auf physischen Servern in einem Rechenzentrum (Data Center), das meistens einem Tech-Giganten (Amazon, Google, Microsoft) gehört.Ist die Cloud sicher?
Meistens sicherer als dein eigener PC, weil Profis die Server bewachen. Aber: Du bist dafür verantwortlich, gute Passwörter zu nutzen (Shared Responsibility Model).Warum lieben Start-ups die Cloud?
Weil sie keine teure Hardware kaufen müssen (niedrige Investitionskosten = CAPEX) und sofort weltweit wachsen können.
Schritt 35 / 65
Deployment (K8s)
Code in eine laufende Umgebung bringen.
S1
Schritt 35 / 65
Deployment (K8s)
Code in eine laufende Umgebung bringen.
1. Verstehen
Der Pod ist die kleinste Einheit in Kubernetes (ein Container). Aber du erstellst Pods fast nie direkt. Warum? Weil Pods sterblich sind. Wenn sie abstürzen, sind sie weg. Du willst aber, dass deine App immer läuft. Dafür gibt es das Deployment. Du sagst dem Deployment: "Sorge dafür, dass immer 3 Kopien (Replicas) meiner App laufen." Das Deployment ist der Manager. Es überwacht die Pods. Wenn einer stirbt, startet es sofort einen neuen. Und wenn du eine neue Version hast ("Update auf v2"), regelt das Deployment den Austausch (Rolling Update) ohne Ausfallzeit.
Merksatz: Ein Kubernetes-Objekt, das eine deklarative Beschreibung des gewünschten Zustands für Pods und ReplicaSets bereitstellt (z. B. Image-Version, Anzahl der Replikate) und Updates verwaltet (Rolling Updates/Rollbacks).
2. Anwenden
Die wichtigste YAML-Datei in deinem Leben:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Ich will 3 Stück
selector:
matchLabels:
app: nginx
template: # Bauplan für den Pod
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2 # Version v1
kubectl apply -f deploy.yaml.
Update auf v2? Ändere nginx:1.14.2 zu nginx:latest und kubectl apply.
Kubernetes tauscht die Pods Stück für Stück aus.
Praxisroutine
In der Praxis lernst du Deployment (K8s), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. ReplicaSets (im Hintergrund)
Das Deployment managet Pods nicht direkt. Es managet ReplicaSets.
Wenn du apply machst:
- Deployment erstellt
ReplicaSet-v1. ReplicaSet-v1erstellt 3 Pods. Bei einem Update:- Deployment erstellt
ReplicaSet-v2(Größe 0). - Es skaliert
ReplicaSet-v2hoch (0 -> 1). - Es skaliert
ReplicaSet-v1runter (3 -> 2). - Wiederholen bis v1=0 und v2=3.
Das ermöglicht den Rollback (
kubectl rollout undo). K8s muss nurReplicaSet-v1wieder hochskalieren. Es behält die alten ReplicaSets (Default: 10) in der History.
2. Update Strategien
- RollingUpdate (Default): Ersetzt Pods Schritt für Schritt. Keine Downtime.
Parameter:
maxSurge(Wie viele extra?) undmaxUnavailable(Wie viele dürfen fehlen?). - Recreate: Tötet ALLE alten Pods sofort. Startet dann die neuen. Kurze Downtime, aber sicher, wenn die App nicht zwei Versionen parallel kann (Datenbank Schema Konflikt).
3. Declarative vs. Imperative
Du sagst nicht "Update jetzt!". Du änderst den "Desired State" in der YAML. Der Deployment Controller in der Control Plane läuft in einer Endlosschleife (Reconciliation Loop). Er vergleicht IST (Cluster) mit SOLL (YAML). Wenn sie abweichen, handelt er. Das macht das System selbstheilend.
4. Vertiefen
1. Die Architektur der Control Loop (Reconciliation)
Das Deployment manifestiert das "Declarative" Paradigma von Kubernetes.
Im Kube-Controller-Manager läuft eine Go-basierte Endlosschleife (Reconciliation Loop).
Das Deployment evaluiert ständig (im Millisekundentakt): Desired State - Current State = Delta.
Du hast 3 Replicas konfiguriert, aber ein externer Sysadmin hat frech per Terminal einen Node hart rebootet und 1 Pod stirbt (Current = 2). Der Controller berechnet Delta = 1. Er schickt dem kube-apiserver den Auftrag: "Generiere einen weiteren Pod, um wieder auf 3 zu kommen". Dieser selbstheilende Ansatz (Self-Healing) ohne hartcodierte if/else Restart-Skripte rettet Ops in der Nachtschicht.
2. Zero-Downtime: Readiness und Liveness Probes
Ein Rolling Update bringt wenig, wenn der neue Pod sofort HTTP-Traffic erhält, aber die interne Java-Runtime noch 40 Sekunden zum Hochfahren braucht (User sehen "502 Bad Gateway"). Deployments operieren daher niemals blind. Sie stützen sich auf Probes.
- Liveness Probe: Testet "Ist die App abgestürzt?" (z.B. HTTP 200 auf
/health). Schlägt dies fehl, tötet K8s den Pod und das Deployment spawnt Ersatz. - Readiness Probe: Testet "Bist du bereit für echten Traffic?". Der Load Balancer wartet mit der Traffic-Umleitung, bis diese Probe (z.B.
/ready) positiv meldet. Beim Update wartet das Deployment exakt auf das "Ready"-Signal des neuen V2-Pods, bevor es drüben den alten V1-Pod killt.
3. GitOps und CD (Continuous Deployment)
In hochreifen Umgebungen (wie Flux oder ArgoCD) tippt kein Mensch mehr kubectl apply.
Das YAML des Deployments liegt in einem Git-Repository, das über Git und Versionierung verwaltet wird. Ein Software-Agent im Cluster überwacht Git.
Pusht ein Entwickler einen Helm-Chart-Commit mit image:v3, bemerkt ArgoCD den Delta-Shift im Repository. ArgoCD pullt die Änderung ins Cluster und synchronisiert das YAML hart ("Single Source of Truth"). Macht ein Sysadmin manuelle CLI-Änderungen am Deployment, überschreibt der GitOps-Agent das gnadenlos nach 3 Sekunden wieder mit dem Git-Stand ("Configuration Drift" Ausgleich).
5. Prüfen
Kann ich Stateful Apps (Datenbanken) deployen?
Technisch ja, aber schlecht. Deployments geben Pods zufällige Namen (nginx-7b4f...). Datenbanken brauchen oft feste IDs ("db-0", "db-1") und stabile Speicher. Dafür gibt es StatefulSets.Was ist
kubectl scale?Ein imperativer Befehl, umreplicaszu ändern. Achtung: Wenn in deiner YAML nochreplicas: 3steht und du machstapply(GitOps), wird dein manuelles Scaling überschrieben!Paused Deployment?
Du kannst ein Deployment pausieren (kubectl rollout pause). Dann kannst du Bild, RAM, CPU ändern, ohne dass sofort Updates loslaufen. Erst beimresumewird alles angewendet. Nützlich für "Canary"-artige manuelle Tests.
Zusammenfassung
- Der Pod ist die kleinste Einheit in Kubernetes (ein Container). Aber du erstellst Pods fast nie direkt. Warum? Weil Pods sterblich sind. Wenn sie abstürzen, sind sie weg. Du willst aber, dass deine App immer läuft. Dafür gibt es das Deployment. Du sagst dem...
- Die wichtigste YAML-Datei in deinem Leben: yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 Ich will 3 Stück selector: matchLabels: app: nginx template: Bauplan für den Pod metadata: labels: app: nginx spec:...
Optionale Praxisaufgabe
- Erkläre Deployment (K8s) in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Deployment (K8s) relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Kubernetes S1
Überblick: Stell dir vor, du hast 1 Container (Lunchbox). Den trägst du leicht selbst. Stell dir vor, du hast 10.000 Container (einen Frachtschiff-Hafen). Du brauchst einen Kranführer, der den Überblick behält. "Container A muss auf Schiff B. Container C ist abgestürzt, wir brauchen einen neuen." Kubernetes (K8s) ist dieser Kranführer für Software-Container. Es wurde von Google erfunden (die starten Milliarden Container pro Woche) und steuert riesige Server-Flotten automatisch.
Einfach erklärt: Du sagst Kubernetes nicht: "Starte Server X". Du gibst ihm einen Wunschzettel (YAML-Datei): "Ich hätte gerne immer 3 Kopien meiner Webseite. Sie sollen auf Servern mit viel RAM laufen." Kubernetes macht den Rest: Es sucht freie Server. Es startet die 3 Kopien. Wenn eine abstürzt, startet es sofort eine neue (Self-Healing).
Tiefer verstanden: Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Ist Kubernetes schwer?
Ja, extrem. Es gilt als eines der komplexesten Tools der IT. Für kleine Webseiten ist es völliger Overkill ("Kanonen auf Spatzen"). Da reicht Docker Compose.Was heißt "K8s"?
Zwischen dem "K" und dem "s" stehen 8 Buchstaben (ubernete). IT-ler sind faul beim Tippen. (Genauso wie "i18n" für Internationalization).Wer nutzt es?
Fast jeder Enterprise-Konzern (Spotify, Adidas, Mercedes). Es ist der Standard für moderne Cloud-Infrastruktur.
Pod (Kubernetes) S1
Überblick: In Docker ist der Container die kleinste Einheit. In Kubernetes nicht. Da ist der Pod die kleinste Einheit. Ein Pod ist eine Hülle um einen oder mehrere Container. Warum? Manchmal gehören zwei Container untrennbar zusammen (wie Erbse und Möhre). Beispiel: Ein Webserver (Nginx) und ein Log-Shipper (Fluentd), der die Logs des Webservers hochlädt. Sie müssen auf demselben Server landen. Sie müssen sich die IP teilen (localhost). Der Pod garantiert das. Du startest nie einen Container direkt. Du startest einen Pod (der einen Container enthält).
Einfach erklärt: YAML "Manifest": yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-app image: nginx kubectl apply -f pod.yaml. kubectl get pods. Wichtig: Ein Pod ist vergänglich. Wenn er stirbt, ist er weg. In Produktion nutzt du deshalb nie kind: Pod, sondern kind: Deployment (das Pods automatisch neu startet).
Warum Mehrere Container?
Sidecar Pattern. Ein Hauptcontainer (App) und Helfer (Proxy, Logger, Backup-Agent). Sie sind eine "logische Einheit". Skalieren immer zusammen (1 App = 1 Sidecar).Kann ein Pod auf 2 Nodes laufen?
Niemals. Ein Pod ist atomar. Er landet ganz oder gar nicht auf einem Node. Wenn du Skalierung brauchst, startest du mehrere Pods (Replicas).Static Pods?
Spezialfall. Pods, die nicht vom API-Server, sondern direkt vom Kubelet auf dem Node (aus/etc/kubernetes/manifests) gestartet werden. Das wird genutzt, um den Cluster selbst (etcd, api-server) zu starten ("Bootstrapping").
ReplicaSet (K8s) S2
Überblick: Ein Pod ist sterblich. Wenn er crasht, ist er tot. Wer startet ihn neu? Nicht du. Das ReplicaSet ist der Aufpasser. Deine Bestellung: "Ich will immer 3 Kopien (Replicas) von Nginx haben." Das ReplicaSet prüft in einer Endlosschleife (Control Loop): "Wie viele habe ich? 2. Soll: 3. - Starte neuen Pod!" "Wie viele habe ich? 4. Soll: 3. - Töte einen Pod!" Es garantiert Verfügbarkeit (Self-Healing). Aber: Du erstellst fast nie ein ReplicaSet manuell. Das macht das Deployment für dich.
Einfach erklärt: Du siehst sie, wenn du kubectl get rs tippst. Name: my-app-5f88d7b9 (Der Hash am Ende kommt vom Pod Template). Wenn du ein Deployment updatest (neues Image v2), erstellt K8s ein neues ReplicaSet für v2 und scalt das alte ReplicaSet (v1) langsam auf 0 runter. So funktioniert Rolling Update.
Unterschied zu ReplicationController?
ReplicationController (RC) ist der veraltete Vorgänger. RS kann komplexere Selektoren (matchExpressions: "tier in (frontend, backend)"). RC konnte nur Gleichheit. RC ist deprecated.ReplicaSet vs Deployment?
Deployment verwaltet ReplicaSets. ReplicaSet verwaltet Pods. Deployment kann Updates (Rollback, History). RS kann nur zählen. Nutze immer Deployments.Warum Hash im Namen?
my-app-76d4f. Der Hash wird aus dem Pod Template berechnet. Wenn du das Template änderst (Env Var), ändert sich der Hash -> Neues RS wird erstellt. Das garantiert Immutability der Historie.
StatefulSet (K8s) S2
Überblick: Deployments sind für Webserver (Rinder). Alle Pods (web-x8z, web-9a1) sind gleich. Wenn einer stirbt, startet ein neuer. Egal welcher. Datenbanken (Postgres, Mongo, Kafka) sind wie Haustiere (Pets). Sie haben Namen (mongo-0, mongo-1). Sie haben festen Wohnsitz (Disk). mongo-0 ist der Master. mongo-1 ist der Slave. Du kannst sie nicht beliebig tauschen. Wenn mongo-0 stirbt, muss er als mongo-0 wiederkommen (mit derselben Disk!). Das StatefulSet garantiert diese Ordnung. Es startet sie auch nacheinander: Erst 0, dann 1, dann 2.
Einfach erklärt: Die Pods heißen immer name-0, name-1 usw. (Ordinal Index). Sie haben auch stabile DNS-Namen: web-0.service.ns.svc.cluster.local. Wichtig: Du brauchst einen Headless Service (clusterIP: None), damit DNS funktioniert. Du nutzt volumeClaimTemplates im YAML, damit jeder Pod seinen eigenen PVC (data-web-0, data-web-1) bekommt. (Bei Deployments teilen sich alle den gleichen PVC oder crashen wegen RWO).
Warum "Pet Set"?
Der alte Name in Alpha Versionen. Anspielung auf "Cattle vs Pets". Deployments sind Cattle (austauschbar). StatefulSets sind Pets (einzigartig, müssen gepflegt werden).Update Strategie?
OnDelete: K8s macht gar nichts, wenn du das Image änderst. Du musst die Pods manuell löschen.RollingUpdate: K8s löscht erst Index N, wartet, dann Index N-1. Das ist sicherer für Leader Election.PVC Retain?
Wenn du das StatefulSet löschst, werden die PVCs nicht gelöscht. K8s sagt: "Daten sind heilig". Du musst die 50 PVCs manuell löschen, wenn du aufräumen willst.
DaemonSet S2
Überblick: In Kubernetes willst du meistens: "Starte 3 Kopien meiner App, egal wo." (Das macht ein Deployment). Aber manchmal willst du: "Starte genau eine Kopie auf jedem Computer (Node) im Cluster". Beispiele: Ein Programm, das Logs sammelt (Fluentd). Ein Programm, das Metriken misst (Prometheus Node Exporter). Ein Netzwerk-Plugin (CNI). Das ist ein DaemonSet. Wenn du einen neuen Node zum Cluster hinzufügst, startet Kubernetes dort automatisch den DaemonSet-Pod. Wenn du einen Node entfernst, wird der Pod gelöscht (und nicht woanders neu gestartet).
Einfach erklärt: YAML: yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-logging spec: selector: matchLabels: name: fluentd template: metadata: labels: name: fluentd spec: containers: - name: fluentd image: fluent/fluentd:v1 Einfach kubectl apply -f ds.yaml. Du siehst dann einen Pod pro Node. Wenn du 100 Nodes hast, hast du 100 Pods.
Unterschied zu ReplicaSet?
ReplicaSet sagt "Ich will X Kopien". DaemonSet sagt "Ich will X Kopien PRO NODE". ReplicaSet kümmert sich nicht, wo sie laufen (können alle auf Node 1 sein).Was passiert im "Scale Up"?
Wenn der Cluster Auto-Scaler neue Nodes hinzufügt (weil Last hoch ist), bemerkt der DaemonSet-Controller das sofort und startet dort seinen Pod. Das ist wichtig, damit der neue Node sofort Logs sendet und im Netzwerk ist.Static Pods?
DaemonSets werden vom API-Server verwaltet. Static Pods (z. B. etcd, kube-apiserver selbst) werden direkt vom Kubelet auf dem Node gestartet (yaml-Datei in /etc/kubernetes/manifests). Ähnliches Konzept (einer pro Node), aber Static Pods laufen "außerhalb" der normalen Control Plane Logik.
Rolling Update S1
Überblick: Früher (Old School): Server stoppen (Downtime). Neue Version kopieren. Server starten. Ergebnis: 5 Minuten "Wartungsarbeiten"-Seite. Heute (Kubernetes): Du hast 3 Kopien (Replicas) deiner App. Du willst Version 1 durch Version 2 ersetzen. Kubernetes ersetzt einen Pod nach dem anderen. 1. Starte v2 (Pod 1). Warte, bis er bereit ist. 2. Beende v1 (Pod 1). 3. Starte v2 (Pod 2)... Der User merkt nichts, weil immer mindestens 2 Pods antworten. Das ist Zero Downtime Deployment.
Einfach erklärt: Ist der Standard in K8s Deployments. yaml strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 Darf 1 mehr starten als gewünscht (4 Pods total). maxUnavailable: 0 Darf NIEMALS unter 3 Pods fallen. Wenn du hier maxUnavailable: 1 setzt, könnte es sein, dass kurzzeitig nur 2 Pods da sind (schneller, aber weniger Kapazität).
Recreate Strategy?
Das Gegenteil. "Töte alle Alten. Dann starte alle Neuen." Vorteil: Kein Mischbetrieb (nie v1 und v2 gleichzeitig). Nachteil: Downtime. Gut für Worker, schlecht für Webseiten.Was ist "Surge"?
Der "Überschuss". Wenn du 100 Pods hast undmaxSurge: 10%, startet K8s 10 neue Pods gleichzeitig. Das Update geht schneller, braucht aber kurzzeitig 110% Ressourcen im Cluster. Hast du genug RAM?Rollback beim Rolling Update?
Wenn der neue Pod crasht (CrashLoopBackOff), stoppt K8s das Rolling Update automatisch ("Stuck"). Es killt keine weiteren alten Pods. Du hast dann 3x v1 und 1x kaputte v2. Das System bleibt online.
Rollback S1
Überblick: Du hast Version 2.0 deiner App deployed. Plötzlich rufen Kunden an: "Alles ist kaputt! Fehler 500!" Was tust du? Du reparierst es nicht live ("Hotfix"). Das dauert zu lange und ist gefährlich. Du drückst den "Rückgängig" Knopf. Du gehst sofort zurück auf Version 1.9 (die stabil war). Das ist ein Rollback. In Kubernetes: kubectl rollout undo deployment/myapp. Dauer: Wenige Sekunden. Ziel: Mean Time To Recovery (MTTR) minimieren. Erst bluten stoppen, dann Fehler suchen.
Einfach erklärt: GitOps (ArgoCD): Wenn du ArgoCD nutzt, drückst du im UI auf "Rollback" (oder revertierst den Git Commit git revert HEAD). ArgoCD merkt: "Ah, das Image soll wieder v1.9 sein". Es ändert das ReplicaSet, killt die v2.0 Pods und startet v1.9 Pods.
Was ist
kubectl rollout history?Zeigt dir die letzten Revisionen. K8s speichert die alten ReplicaSets (standardmäßig 10). Wenn duundomachst, reaktiviert es einfach das alte RS.Blue/Green Deployment?
Eine Strategie, die Rollback trivial macht. Du lässt v1 (Blue) und v2 (Green) parallel laufen. Wenn Green kaputt ist, schaltest du den Load Balancer einfach wieder auf Blue um. Instant Rollback ohne Pod-Neustart.Warum scheitern Rollbacks oft?
Weil v1.9 nicht mehr mit der (von v2.0 veränderten) Datenbankstruktur klarkommt ("Schemadrift"). Oder weil ConfigMaps nicht mitgerollt wurden. In GitOps (alles im Git) ist das sicherer.
Git und Versionierung S1
Überblick: Versionierung macht Änderungen nachvollziehbar, erleichtert Zusammenarbeit und schützt vor unkontrolliertem Codeverlust.
Einfach erklärt: Du entwickelst Software für einen Kunden. Anforderungen, Oberfläche, Daten, Code, Tests, Deployment und Wartbarkeit müssen gemeinsam funktionieren.
Tiefer verstanden: Auf Level 2 wird Git und Versionierung in einen Arbeitsablauf eingebettet. Du lernst nicht nur eine Definition, sondern eine Methode, die in Berufsschule, Betrieb und Prüfung wiederverwendbar ist.
Praxisgrenze: Auf Expertenniveau geht es um belastbare Entscheidungen unter echten Randbedingungen. Dazu gehören technische Richtigkeit, Wirtschaftlichkeit, Sicherheit, Datenschutz, Wartbarkeit, Dokumentation und Kommunikation. Bei Git und Versionierung musst du erklären können, warum eine Lösung angemessen ist und welche Alternative du bewusst nicht gewählt hast.
Was ist der Kern von Git und Versionierung?
Versionierung macht Änderungen nachvollziehbar, erleichtert Zusammenarbeit und schützt vor unkontrolliertem Codeverlust.Zu welchem Ausbildungsmodul gehört der Begriff?
Fachrichtung AnwendungsentwicklungWelche drei Ebenen darfst du nicht vermischen?
Beobachtung, Interpretation und Maßnahme.Was ist eine typische Praxisfalle?
Software wird nach Featureliste gebaut, ohne Benutzerfluss, Datenmodell, Tests und Wartbarkeit zusammenzuführen.Woran erkennst du echtes Verständnis?
Du kannst den Begriff erklären, in einem Fall anwenden, Grenzen benennen und dein Ergebnis dokumentieren.
Schritt 36 / 65
CI/CD
Build, Test und Deployment automatisieren.
S1
Schritt 36 / 65
CI/CD
Build, Test und Deployment automatisieren.
1. Verstehen
CI/CD ist das Fließband der Software-Entwicklung. Früher haben Programmierer Wochen lang getippt, dann alles zusammenkopiert und gehofft, dass es geht (oft ging es schief). CI/CD automatisiert das. Sobald du Code speicherst ("Commit"), startet ein Roboter:
- CI (Integration): Er prüft den Code und lässt Tests laufen. "Hast du was kaputt gemacht?"
- CD (Deployment): Er lädt die neue Version automatisch auf den Server. "Live schalten!"
Ziel: Software schneller und sicherer veröffentlichen.
Merksatz: Die Automatisierung von Tests und Auslieferung, um Code-Änderungen schnell und sicher live zu bringen.
2. Anwenden
Typischer Ablauf (Pipeline):
- Du änderst die Farbe eines Buttons.
- Du schickst den Code an GitHub/GitLab.
- Die Pipeline springt an (Du siehst grüne Haken ✔️).
- Test: "Klickt der Button noch?" -> ✔️.
- Build: "Baue die App." -> ✔️.
- Deploy: "Lade auf Webserver." -> ✔️. 5 Minuten später sieht der Kunde den neuen Button. Ohne dass du einen Finger rührst.
Praxisroutine
In der Praxis lernst du CI/CD, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Continuous Delivery vs. Deployment
Ein feiner Unterschied im "CD":
- Continuous Delivery: Die Software könnte jederzeit live gehen (der Release-Button ist bereit), aber ein Mensch muss noch klicken.
- Continuous Deployment: Alles geht vollautomatisch live. Wenn du Freitagabend Code pushst, ist er 10 Minuten später beim Kunden. (Nur für sehr mutige Firmen wie Netflix/Facebook).
2. Shift Left
CI/CD ermöglicht "Shift Left". Fehler sollen so früh wie möglich (links im Zeitstrahl) gefunden werden. Ein Fehler auf dem Entwickler-Laptop zu finden kostet 1 €. Ihn in der Pipeline zu finden kostet 10 €. Wenn der Kunde ihn findet, kostet es 1.000 € (Image-Schaden).
4. Vertiefen
1. GitOps und Declarative Pipelines
Moderne CI/CD Pipelines klickt man nicht mehr in einer Weboberfläche (wie im frühen Jenkins) zusammen. Sie leben als "Pipeline as Code" (z.B. .gitlab-ci.yml, Jenkinsfile) direkt zusammen mit dem Source Code im Repo.
Die Weiterentwicklung davon ist GitOps (oft mit Tools wie ArgoCD).
Hier "pusht" die Pipeline das Artefakt nicht mehr brutal auf den Server.
Stattdessen ändert der CI/CD-Runner nach erfolgreichem Build nur ein config-Repo (z.B. "setze image=v2"). Der Kubernetes-Server horcht auf dieses Repo und "zieht" (pullt) sich die Änderung vollautomatisch rein. Wenn jemand manuell im Cluster fummelt, überschreibt Kubernetes es sofort wieder mit dem Zustand aus Git (dem "Single Source of Truth").
2. Blue-Green Deployment & Canary Releases
Wie deployst du Facebook live, ohne dass 2 Milliarden User einen Error sehen, während der Container bootet? Man nutzt fortschrittliche Deployment-Strategien:
- Blue-Green: Aktuell läuft Version "Blau" für alle Kunden. Die Pipeline deployt eine komplett neue Version "Grün" auf parallelen Maschinen. Wenn "Grün" den Healtcheck besteht, legt der Load Balancer blitzartig den Schalter um. Alle User sind auf Grün. Kein Ausfall.
- Canary: Die Pipeline schickt zuerst nur 5% der echten User auf den neuen Container (wie ein Kanarienvogel in der Mine). Ein automatisiertes Matrix-System prüft die Error-Logs. Sinkt die Conversion-Rate oder steigen die 500er-Fehler, stoppt die Pipeline und macht sofort ein Rollback der 5%. Fliegt der Vogel weiter, rollt man auf 100% aus.
3. Ephemeral Environments
Die höchste Kunst der Automation.
Wenn ein Entwickler einen Pull Request (PR) in Git erstellt, baut die Pipeline nicht nur Code. Sie deployt eine komplette, temporäre Version des gesamten Systems (inklusive Dummy-Datenbank) unter einer generierten URL (z.B. pr-42.firma.com).
Der Produktmanager kann den PR sofort live im Browser testen. Sobald der PR in den Main-Branch ge-merged wird, zerstört die Pipeline dieses Wegwerf-Environment ("Ephemeral") wieder rückstandslos, um Cloud-Kosten zu sparen.
5. Prüfen
Brauche ich CI/CD für mein Hobby-Projekt?
Nicht zwingend, aber es hilft. Allein schon GitHub Actions einzurichten, damit Tests automatisch laufen, gibt ein gutes Gefühl.Was passiert, wenn die Pipeline rot ist (Fehler)?
"Stop the Line!" Das Deployment wird abgebrochen. Kein kaputter Code darf live gehen. Der Entwickler muss den Fehler sofort fixen ("Broken Build").Was sind bekannte Tools?
Jenkins (der Klassiker, alt), GitLab CI (sehr beliebt), GitHub Actions (modern, Cloud), CircleCI.
Zusammenfassung
- CI/CD ist das Fließband der Software-Entwicklung. Früher haben Programmierer Wochen lang getippt, dann alles zusammenkopiert und gehofft, dass es geht (oft ging es schief). CI/CD automatisiert das. Sobald du Code speicherst ("Commit"), startet ein Roboter: 1....
- Typischer Ablauf (Pipeline): 1. Du änderst die Farbe eines Buttons. 2. Du schickst den Code an GitHub/GitLab. 3. Die Pipeline springt an (Du siehst grüne Haken ✔️). 4. Test: "Klickt der Button noch?" - ✔️. 5. Build: "Baue die App." - ✔️. 6. Deploy: "Lade auf...
Optionale Praxisaufgabe
- Erkläre CI/CD in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem CI/CD relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Software S1
Überblick: Software ist der Teil eines Computers, den man nicht anfassen kann: Programme, Apps, Betriebssysteme, Treiber und Skripte. Hardware ist das Gerät, Software sagt dem Gerät, was es tun soll. Ohne Software wäre ein Computer nur Elektronik ohne Aufgabe.
Einfach erklärt: Ein Browser, ein Textprogramm, ein Spiel, eine App und ein Serverdienst sind Software. Nutzer installieren oder öffnen sie, Entwickler schreiben und pflegen sie. Unternehmen achten auf Updates, Lizenzen, Sicherheit, Kompatibilitaet und Support.
Tiefer verstanden: Software kann aus Quellcode, Bibliotheken, Konfigurationsdateien, Assets und Build-Artefakten bestehen. Moderne Systeme trennen oft Frontend, Backend, Datenbank, Infrastrukturcode und Automatisierungen. Qualität entsteht durch Tests, Reviews, Versionierung, Monitoring und klare Architektur.
Praxisgrenze: Software altert, auch wenn sie nicht angefasst wird: Abhaengigkeiten bekommen Sicherheitslücken, Plattformen ändern sich, Daten wachsen und Nutzeranforderungen verschieben sich. Deshalb ist Wartbarkeit wichtiger als nur "es läuft gerade". Schlechte Update- und Backup-Prozesse machen harmlose Änderungen riskant.
Was unterscheidet Software von Hardware?
Hardware ist das physische Gerät. Software sind Programme, Regeln und Daten, die auf dieser Hardware laufen.Warum braucht Software Updates?
Updates beheben Fehler, Sicherheitslücken, Kompatibilitaetsprobleme und erweitern Funktionen.Was ist eine typische Praxisfalle?
Nur auf sichtbare Features zu achten und Wartung, Tests, Lizenzen und Sicherheit zu ignorieren.
Jenkins S1
Überblick: Stell dir vor, du hast einen Butler. Jedes Mal, wenn du neuen Code speicherst, rufst du ihn: "Butler, bitte teste mein Programm. Wenn alles klappt, lade es auf den Server." Dieser Butler heißt Jenkins. Er ist ein Programm (ein Server), der rund um die Uhr wartet. Er automatisiert die langweilige Arbeit (Kompilieren, Testen, Deployen), damit Entwickler sich auf das Programmieren konzentrieren können.
Einfach erklärt: Jenkins ist der "Opa" der CI/CD-Tools (gibt es seit 2004). Es ist extrem mächtig, aber nicht hübsch. Man steuert ihn über eine Webseite. Du erstellst einen "Job" oder eine "Pipeline" (ein Skript): 1. git clone (Code holen). 2. npm install (Abhängigkeiten laden). 3. npm test (Tests laufen lassen).
Ist Jenkins tot?
Viele sagen ja ("zu alt, zu kompliziert"). Moderne Tools wie GitLab CI oder GitHub Actions sind beliebter, weil sie einfacher sind. Aber Jenkins läuft noch in fast jedem großen Konzern (Legacy).Kostet Jenkins Geld?
Nein, es ist Open Source (kostenlos). Aber du brauchst einen Server, um es laufen zu lassen, und jemanden, der es wartet (das kostet Zeit/Geld).Warum das Butler-Logo?
Der Name kommt von einem echten Butler. Er soll dir dienen. (Früher hieß das Projekt "Hudson", musste aber wegen Markenstreit umbenannt werden).
Schritt 36.1 / 65
Build
Code zu einem auslieferbaren Ergebnis zusammenbauen.
S1
Schritt 36.1 / 65
Build
Code zu einem auslieferbaren Ergebnis zusammenbauen.
1. Verstehen
Wenn du einen Text in Word schreibst (.docx), drückst du "Drucken", um ein Papier (.pdf) zu bekommen.
In der Programmierung ist das der Build.
Programmierer schreiben Quellcode (Source Code in Java, C++, TypeScript), den Menschen verstehen.
Der Computer versteht aber nur Nullen und Einsen (Maschinencode).
Der Build-Prozess wandelt den menschenlesbaren Code in ausführbare Software um.
Es ist wie Kochen:
- Zutaten: Source Code.
- Rezept: Build-Skript (
Makefile,package.json). - Kuchen: Das fertige Programm (Artefakt).
Merksatz: Der Prozess der Umwandlung von Quellcode in ausführbare Software oder deploybare Artefakte, oft inklusive Kompilierung, Testen und Paketierung.
2. Anwenden
Praxis-Nachtrag: Nutze Build in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Build auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du als Anfänger wahrscheinlich sehen? Diese Denkweise macht den Begriff sofort greifbarer als eine reine Definition.
Je nach Sprache anders:
- Java:
./gradlew build-> Erzeugt eine.jarDatei. - JavaScript/Node:
npm run build-> Minifiziert JS, transpiliert TypeScript zu JS. - Docker:
docker build -t my-app .-> Erzeugt ein Image.
In einer CI-Pipeline (GitHub Actions): Der Build ist fast immer der erste Schritt. Wenn der Build fehlschlägt ("Compile Error"), stoppt alles. Das ist gut! Lieber bricht der Build ab, als dass kaputte Software auf den Server kommt.
3. Technisch einordnen
1. Incremental Builds
Große Projekte (Google Chrome, Linux Kernel) brauchen Stunden zum Bauen.
Niemand will 4 Stunden warten, nur weil er eine Zeile geändert hat.
Inkrementelle Builds (Smart Rebuilds) prüfen: "Hat sich Datei A geändert?".
Nein? -> Nutze das alte .o File (Object File) aus dem Cache.
Ja? -> Kompiliere nur Datei A neu und linke es zusammen.
Tools wie Bazel (Google) oder Gradle sind Meister darin. Sie nutzen Hash-Bäume (DAGs), um Abhängigkeiten zu tracken.
2. Multi-Stage Builds (Docker)
Um Docker Images klein zu halten, nutzt man Multi-Stage Builds. Stage 1 (Builder): Hat alle Tools (Compiler, Maven, Node.js). Baut das Artefakt. Image ist riesig (1 GB). Stage 2 (Runner): Hat nur das Betriebssystem und das Artefakt. Kopiert das Artefakt aus Stage 1. Ergebnis: Ein winziges Image (50 MB) ohne unnötigen Ballast (Compiler, Source Code). Das erhöht Sicherheit (Angriffsfläche minimiert) und Performance.
3. Deterministic Builds
Das Ziel: "Gleicher Input -> Exakt gleicher Output (Hash)".
Probleme: Zeitstempel (build_time = now()), Pfade (/home/user/project), Zufallszahlen.
Lösung:
- Setze Zeitstempel auf 0 (Epoch 1970) oder Git Commit Time (
SOURCE_DATE_EPOCH). - Nutze relative Pfade. Nur so kann man Binary Verification machen (Verhindern von "SolarWinds" Supply Chain Attacks).
4. Vertiefen
1. Build Tools vs. Build Systems
Ein Build Tool (wie gcc oder tsc) nimmt eine Eingabedatei und kompiliert sie stur.
Ein Build System (wie Make, Maven, Gradle) koordiniert hunderte dieser Operationen. Es löst Abhängigkeitsgraphen (Dependency DAG) auf.
Wenn Modul B von Modul A abhängt, wartet das Build System, bis A fertig ist, bevor es B an den Compiler übergibt. Es managed Cache-Misses und Invalidation (z.B. Make checkt, ob die Ticks (Last Modified) der .c neuer sind als die der .o Dateien).
2. Static vs. Dynamic Linking
Nach dem Kompilieren muss gelinkt werden.
- Static Linking (
.a/.lib): Der Linker kopiert alle benötigten Drittanbieter-Funktionen physisch direkt in dein riesiges.exeBinary. Vorteil: Zero Dependencies. Lauffähig auf jedem System. - Dynamic Linking (
.so/.dll): Dein Binary bleibt winzig. Es enthält nur einen Verweis: "Lade zur Laufzeit dielibc.so". Vorteil: Das Betriebssystem lädt die DLL ins RAM und teilt sie mit 100 anderen Prozessen, das spart Speicherplatz. Nachteil: "DLL Hell" (es fehlt eine Datei oder liegt in der falschen Version vor).
3. Tree Shaking & Dead Code Elimination
Im modernen Frontend-Build (z.B. Webpack, Vite via esbuild) ist Tree Shaking essenziell. Wenn du eine gigantische Library importierst, aber nur eine kleine Funktion nutzt:
import { isArray } from 'lodash';
...analysiert der Bundler den Abstract Syntax Tree (AST). Er erkennt und entfernt alle restlichen hunderte Funktionen (den "toten Code"), die niemals aufgerufen werden, und schrumpft dein fertiges Bundle (Artefakt) effektiv von 500 KB auf 2 KB herunter. Das rettet die Ladezeit der Website für Kunden am Smartphone drastisch.
5. Prüfen
Was ist "Transpiling"?
Ein Spezialfall des Builds. Wandelt Source Code (TypeScript) in anderen Source Code (JavaScript) um, nicht in Maschinencode. Typisch im Web.Warum CI Server?
"It works on my machine" zählt nicht. Der CI Server baut in einer sauberen, isolierten Umgebung (Container). Wenn es dort baut, baut es wirklich.Was ist ein "Broken Build"?
Der Zustand, wenn der Code im Haupt-Branch (main) Syntaxfehler hat. Das Team sollte sofort stoppen und fixen ("Stop the Line"), damit andere weiterarbeiten können.
Zusammenfassung
- Wenn du einen Text in Word schreibst (.docx), drückst du "Drucken", um ein Papier (.pdf) zu bekommen. In der Programmierung ist das der Build. Programmierer schreiben Quellcode (Source Code in Java, C++, TypeScript), den Menschen verstehen. Der Computer...
- Praxis-Nachtrag: Nutze Build in einem Mini-Szenario. Eine kleine App soll einen Nutzer anmelden, eine Liste laden oder eine Bestellung speichern. Frage: An welcher Stelle taucht Build auf, was würde ohne diesen Baustein fehlen, und welchen Fehler würdest du...
Optionale Praxisaufgabe
- Erkläre Build in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Build relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Quellcode S1
Überblick: Quellcode ist der von Menschen lesbare Text, aus dem Software entsteht. Er enthält Anweisungen, Namen, Struktur und Kommentare. Aus Quellcode wird je nach Sprache direkt laufendes Verhalten oder ein Build-Artefakt.
Einfach erklärt: Teams speichern Quellcode in Git, prüfen Änderungen per Review und bauen daraus Programme, Webseiten oder Serverdienste. Eine kleine Änderung am Quellcode kann große Wirkung haben. Deshalb sind Tests, Versionierung und nachvollziehbare Commits wichtig.
Tiefer verstanden: Quellcode wird geparst, interpretiert oder kompiliert. Er kann Abhaengigkeiten importieren, Konfiguration lesen und Artefakte erzeugen. Professionelle Projekte trennen Quellcode von generierten Dateien, Secrets und lokalen Build-Ergebnissen.
Praxisgrenze: Nicht alles, was für Software wichtig ist, steht im Quellcode: Infrastruktur, Datenbankzustand, Secrets, Feature Flags und externe Dienste zaehlen ebenfalls. Riskant sind lokale Pfade, harte Zugangsdaten und generierte Dateien, die versehentlich als Quelle behandelt werden.
Warum ist Git für Quellcode wichtig?
Git macht Änderungen nachvollziehbar und erlaubt Zusammenarbeit, Reviews und Rueckverfolgung.Ist generiertes HTML immer Quellcode?
Nicht unbedingt. In einem Static-Site-Projekt kann Markdown die Quelle sein und HTML nur das erzeugte Ergebnis.Was gehört nicht in Quellcode?
Private Secrets, lokale absolute Pfade und nicht benötigte generierte Artefakte.
Compiler vs. Interpreter S1
Überblick: Computer verstehen nur Nullen und Einsen (Maschinencode). Du schreibst aber Englisch (if (x 5)). Jemand muss übersetzen. Der Compiler ist wie ein Buch-Übersetzer. Er nimmt deinen ganzen Code, liest ihn komplett, findet alle Fehler, und schreibt ein neues Buch in Maschinensprache (.exe). Erst danach kannst du das Programm starten. Vorteil: Das fertige Programm ist extrem schnell. Beispiele: C++, Go, Rust.
Einfach erklärt: Workflow in C++: 1. Code schreiben (main.cpp). 2. Kompilieren: g++ main.cpp -o main.exe. (Dauert Sekunden bis Minuten). 3. Ausführen: ./main.exe.
Warum kompiliert Python nicht?
Python ist (meistens) interpretiert. Es gibt keinen Schritt 2. Das Programm startet sofort, aber läuft langsamer.Cross-Compilation?
Ich arbeite auf einem Mac, will aber eine.exefür Windows bauen. Der Compiler muss Code für eine fremde CPU/OS generieren. Schwierig, aber Go macht es sehr einfach (GOOS=windows go build).Linker?
Nach dem Kompilieren hast du viele kleine Objekt-Dateien (.o). Der Linker klebt sie zusammen zu einer einzigen ausführbaren Datei und bindet Bibliotheken ein.
Artifact S1
Überblick: Wenn du einen Kuchen backst, hast du am Anfang Zutaten (Mehl, Eier = Source Code). Am Ende hast du einen fertigen Kuchen. In der Softwareentwicklung ist der "Kuchen" das Artefakt. Es ist das Ergebnis des Bau-Prozesses (Build). Das Artefakt ist das, was der Kunde bekommt oder was auf dem Server installiert wird. Beispiele: Eine .exe Datei (Windows). Eine .apk Datei (Android App). Ein Docker Image.
Einfach erklärt: In einer Pipeline (CI/CD): 1. Source: Entwickler checkt Code ein (main.c). 2. Build: Der Compiler macht daraus app.exe. 3. Upload: Die app.exe wird als "Build Artifact" gespeichert (z. B. in GitHub Actions oder Jenkins). 4. Deploy: Der Server lädt genau dieses Artefakt herunter. Wichtig: Du deployst niemals den Source Code auf den Server, sondern immer das getestete Artefakt.
Ist ein Word-Dokument ein Artefakt?
Im Projektmanagement (Scrum) ja ("Design Artifact"). In DevOps eher nein, dort meint man ausführbaren Code.Warum speichert man Artefakte nicht in Git?
Git ist "Delta-basiert" (speichert nur Zeilen-Änderungen). Binärdateien ändern sich komplett bei jedem Build. Das Repo würde nach 1 Woche 50 GB groß sein ("Repo Bloat").Was ist ein "Fat Jar"?
Ein Java-Artefakt, das alle Abhängigkeiten (Libraries) in einer einzigen riesigen Datei enthält. Vorteile: Einfaches Deployment (java -jar app.jar). Nachteile: Groß und schwer zu patchen.
Continuous Integration (CI) S2
Überblick: Früher (bevor es "Agile" gab) entwickelten 20 Programmierer jeder für sich in ihrer eigenen Ecke. Am Ende des Monats ("Merge Day") kopierten alle ihre Änderungen zusammen. Das Ergebnis: Chaos ("Merge Hell"). Nichts funktionierte. Continuous Integration (CI) ist die Gegenmedizin. Die Regel: Jeder muss seinen Code mehrmals täglich in den Hauptzweig (main) integrieren. Jedes Mal, wenn jemand Code hochlädt (git push), prüft ein Roboter (der CI Server) sofort: 1. Lässt sich das bauen? (Build) 2. Funktioniert es noch? (Test) Wenn der Roboter "Grün" sagt, ist alles gut. Wenn er "Rot" sagt, muss der Entwickler sofort reparieren.
Einfach erklärt: Du nutzt Tools wie GitHub Actions, GitLab CI oder Jenkins. In einer YAML-Datei (.github/workflows/ci.yml) definierst du die Schritte: yaml on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: npm install - run: npm test Sobald du pushst, siehst du in GitHub einen grünen Haken oder ein rotes Kreuz. "Don't break the build!" ist das oberste Gebot im Team.
Was passiert bei einem Build Failure?
"Stop the Line". Das Team sollte aufhören, neue Features zu entwickeln, bis der Build wieder grün ist. Sonst stapeln sich Fehler auf Fehler.Ist CI nur Testing?
Nein, dazu gehören auch Linting (Code Style), Security Scans (SAST), License Checks und das Erstellen des Artefakts. Alles, was automatisiert prüfbar ist.Pre-Commit Hooks vs. CI?
Hooks laufen lokal auf deinem PC ("Linksschwenk der Qualitätssicherung"). Sie sind schnell, aber man kann sie umgehen (--no-verify). CI ist die letzte Instanz der Wahrheit, die niemand umgehen kann.
Pipeline (CI/CD) S1
Überblick: Eine Pipeline ist ein scriptgesteuerter Roboter, der deinen Code nimmt und ihn sicher zum Kunden bringt. Statt manuell zu tippen: 1. npm install 2. npm test 3. scp files server:/var/www ...schreibst du diese Schritte in eine Datei (Jenkinsfile, .github/workflows/main.yml). Der Roboter führt es bei jedem einzelnen git push aus. Wenn ein Schritt fehlschlägt (Test rot), stoppt das Band. Der Code kommt nicht auf den Server. Niemals. Das garantiert Qualität und verhindert "Es läuft auf meinem Laptop"-Probleme.
Einfach erklärt: GitHub Actions Beispiel: yaml name: CI on: [push] jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: npm install - run: npm test Du siehst grüne Haken oder rote Kreuze direkt neben deinem Commit auf GitHub.
Trunk-Based?
Pipelines funktionieren am besten, wenn alle aufmain(Trunk) arbeiten (oder kurzlebige Branches). Long-Lived Feature Branches führen zu "Merge Hell", die die Pipeline erst nach Wochen entdeckt.Pipeline as Code?
Früher klickte man Jobs im Jenkins UI zusammen. Böse! Wenn Jenkins crasht, ist der Job weg. Heute liegt die Pipeline-Definiton im Git Repo bei dem Code (Jenkinsfile). Die Pipeline ist versioniert und Teil der App.Multi-Branch Pipeline?
Der CI Server scannt alle Branches. Er erstellt automatisch Pipelines fürfeature/x(nur Tests) undmain(Tests + Deploy). Das erlaubt dynamisches Arbeiten ohne Admin-Eingriff.
Schritt 36.2 / 65
Test
Verhalten prüfen, bevor etwas produktiv geht.
S1
Schritt 36.2 / 65
Test
Verhalten prüfen, bevor etwas produktiv geht.
1. Verstehen
Einsteiger-Brücke: Wenn du Test zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das heißt nicht, dass du alles sofort programmieren musst. Du brauchst zuerst eine Landkarte. Test ist ein Baustein auf dieser Landkarte und hilft dir, Gespräche über Server, APIs, Datenbanken und Betrieb nicht mehr als Wortsalat zu erleben.
Ein Test prüft, ob Software sich wie erwartet verhält.
Merksatz: Test ist ein Grundbaustein, den du kennen solltest, bevor du die nächste Stufe im Lernpfad sauber verstehst.
2. Anwenden
Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Test ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für Anfänger reicht zunächst: Schreibe daneben, ob der Begriff Code schreibt, Code ausführt, Daten speichert, Daten transportiert, Sicherheit regelt oder Betrieb sichtbar macht. Diese Einordnung verhindert, dass du Begriffe nur auswendig lernst.
Tests sind Sicherheitsnetze. Sie zeigen früh, ob eine Änderung etwas kaputt gemacht hat.
Typische Anfängerfrage: Woran erkenne ich Test im echten Alltag oder in einem Projekt?
Antwort: Du erkennst es daran, dass Menschen genau diese Funktion, Rolle oder Entscheidung benennen müssen, um das nächste Problem verständlich zu lösen.
3. Technisch einordnen
Technik-Nachtrag: Prüfe bei Test immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder Netzwerkausfall? Diese vier Fragen verbinden den Begriff mit echter Backend-Arbeit und zeigen, warum er im Lehrpfad nicht isoliert gelernt werden sollte.
Technischer Zusammenhang: Test steht selten allein. Prüfe immer die Nachbarn im Lernpfad: Sprache, Framework, Runtime, Server, Datenbank, API, Authentifizierung, Logging und Deployment. Frage dich bei jedem Backend-Begriff, welche Eingabe hineingeht, welche Verarbeitung passiert, welche Ausgabe entsteht, welche Fehler möglich sind und wer dafür verantwortlich ist. Genau diese Kette macht aus einem einzelnen Wort verwertbares Wissen für echte Projekte.
Es gibt Unit Tests, Integrationstests, End-to-End-Tests, manuelle Tests und Abnahmetests.
Praxisroutine:
- Lies den Begriff einmal langsam.
- Schreibe ein eigenes Beispiel auf.
- Markiere alle weiteren Fachwörter, die darin vorkommen.
- Öffne diese Begriffe als Unterpunkte, bevor du weitergehst.
4. Vertiefen
Experten-Nachtrag: In produktiven Systemen wird Test zusätzlich nach Wartbarkeit, Sicherheit, Performance, Beobachtbarkeit und Kosten bewertet. Gute Praxis bedeutet: Annahmen dokumentieren, Grenzfälle testen, Fehlermeldungen verständlich machen, Logs und Metriken einplanen, Rechte begrenzen und Änderungen reproduzierbar ausrollen. Genau dadurch unterscheidet sich Spielcode von belastbarer Backend-Entwicklung.
Expertenperspektive: In professionellen Systemen zählt nicht nur, ob Test funktioniert, sondern ob es wartbar, sicher, beobachtbar und austauschbar bleibt. Gute Teams dokumentieren Annahmen, testen Grenzfälle, prüfen Fehlermeldungen, begrenzen Rechte, messen Verhalten und planen den Betrieb vor dem Go-live. Ein Anfänger wird dadurch nicht überfordert, sondern bekommt früh den richtigen Maßstab: Technik ist nie nur ein Tool, sondern immer Teil eines kontrollierten Ablaufs mit Folgen für Nutzer, Daten und Kosten.
Experten achten auf Testpyramide, deterministische Tests, sinnvolle Testdaten, Contract Tests, Flaky Tests und Risikoabdeckung.
Experten achten zusätzlich auf Kontext, Risiko und Verantwortung. Ein Begriff ist erst dann wirklich verstanden, wenn du ihn erklären, anwenden, abgrenzen und in einer Fehlersituation wiedererkennen kannst.
5. Prüfen
Erkläre Test ohne Fachsprache.
In einfachen Worten: Ein Test prüft, ob Software sich wie erwartet verhält. Entscheidend ist, dass du die Rolle des Begriffs im Ablauf nennen kannst, ohne dich hinter Fachsprache zu verstecken.Nenne ein Beispiel, in dem Test praktisch vorkommt.
Ein typisches Beispiel ist eine kleine Web-App: Ein Nutzer sendet eine Anfrage, das Backend verarbeitet sie, und Test ist der Baustein, der dabei eine konkrete Aufgabe übernimmt.Welche zwei Begriffe hängen direkt damit zusammen?
Direkt zusammen hängen hier vor allem ci cd und build. Öffne diese Begriffe als Nächstes, wenn du die Verbindung noch nicht sicher erklären kannst.
Zusammenfassung
- Einsteiger-Brücke: Wenn du Test zum ersten Mal liest, ordne den Begriff zuerst in drei Fragen ein: Wer benutzt ihn, welches Problem löst er, und woran würdest du ihn in einer echten Anwendung erkennen? Im Backend tauchen viele Wörter gleichzeitig auf. Das...
- Praxisbild: Stell dir vor, du baust eine kleine Termin-App. Ein Nutzer klickt, das Frontend sendet eine Anfrage, das Backend prüft Regeln, speichert Daten und gibt eine Antwort zurück. Test ist dabei entweder Werkzeug, Rolle, Technik oder Prüfschritt. Für...
- Technik-Nachtrag: Prüfe bei Test immer Eingabe, Verarbeitung, Ausgabe und Fehlerfall. Welche Daten kommen hinein? Welche Regel wird angewendet? Welche Antwort entsteht? Was passiert bei ungültigen Daten, Zeitüberschreitung, fehlender Berechtigung oder...
Optionale Praxisaufgabe
- Erkläre Test in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Test relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Schritt 37 / 65
Git
Codeversionen nachvollziehbar verwalten.
S1
Schritt 37 / 65
Git
Codeversionen nachvollziehbar verwalten.
1. Verstehen
Kennst du Dateinamen wie hausarbeit_final.doc, hausarbeit_final_wirklich_fertig.doc, hausarbeit_NEU.doc?
Das ist Chaos.
Git ist die Zeitmaschine für Code.
Es speichert jeden Zustand deiner Arbeit.
Du kannst jederzeit sagen: "Geh zurück zum Stand von gestern Mittag, bevor ich alles kaputt gemacht habe."
Und: Mehrere Leute können gleichzeitig an derselben Datei arbeiten, ohne sich zu überschreiben.
Merksatz: Ein verteiltes Versionsverwaltungssystem, das Änderungen an Dateien protokolliert und die Zusammenarbeit im Team koordiniert.
Lernbruecke für Anfänger
Wenn du bei Git ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Codeversionen nachvollziehbar verwalten. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
2. Anwenden
Das wichtigste Tool für Programmierer. Begriffe:
- Repository (Repo): Der Projektordner.
- Commit: Ein Speicherpunkt ("Foto" der Dateien machen).
- Push: Code ins Internet hochladen (z. B. nach GitHub).
- Pull: Code von anderen herunterladen.
Erfunden von Linus Torvalds (dem Erfinder von Linux), weil er wütend über schlechte Tools war.
Praxisroutine
In der Praxis lernst du Git, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Branching & Merging
Das Killer-Feature. Du arbeitest nicht am Haupt-Code ("Main"), sondern machst eine Kopie ("Branch"). Dort kannst du experimentieren. Wenn es klappt, führst du es zurück ("Merge"). Wenn es Konflikte gibt ("Kollege A und B haben beide Zeile 10 geändert"), hilft Git, das zu lösen.
2. Verteiltheit (Distributed)
Git braucht keinen Server. Jeder Entwickler hat die gesamte Geschichte des Projekts auf seinem Laptop. Wenn GitHub offline geht, könnt ihr trotzdem weiterarbeiten und Daten per USB-Stick austauschen.
Technische Einordnung im System
Technisch ist Git nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. Der .git/objects Graph (DAG)
Git speichert keine Datei-Änderungen (Deltas) pro Version.
Git ist ein Key-Value Data Store. Jeder Commit, jeder Ordner (Tree) und jede Datei (Blob) wird komplett mittels SHA-1 Hash auf 40 Zeichen gehasht und gepackt (.git/objects/f9/a8b7...).
Wenn du eine 1GB Video-Datei commitst, danach ein Zeichen änderst und neu commitst, frisst Git 2GB SSD-Platz. Dieser Directed Acyclic Graph (DAG) macht Git blitzschnell: Der Branch main ist keine Kopie deiner Festplatte, sondern nur ein mikroskopisch kleiner 40-Zeichen String-Pointer in einem Textfile (.git/refs/heads/main), der auf den neuesten Commit Node zeigt.
2. Rebasing vs. Merging
Die größte Architektur-Glaubensfrage im DevOps.
- Merge: Nimm Branch A und Branch B und schnüre sie mit einem hässlichen "Merge-Knoten" (
M) zusammen. Historie bleibt 100% erhalten (Wahrheit), sieht aber aus wie ein U-Bahn-Plan aus Tokio. - Rebase: Du sägst Branch B an der Wurzel ab und pflanzt ihn "an die Spitze" von Branch A (
git rebase main). Die Historie wird umgeschrieben (!). Sie ist nun eine absolut perfekte, gerade Linie. Schön für den Code-Reviewer. Fatal, wenn du eine Historie umschreibst, die Kollegen schon gepulled haben (Zusammenbruch aller Pointers).
3. Reflog und der Garbage Collector
Viele haben Angst, Commits zu verlieren ("Ich habe versehentlich Reset --hard gedrückt!").
Git löscht Commits nie sofort. Selbst wenn ein Branch gelöscht wird, schwebt der Commit-Blob als "Dangling Object" unsichtbar in der .git Datenbank weiter.
Mit git reflog (Reference Logs) kannst du Wochen in die Vergangenheit schauen. HEAD@{4} zeigt, welches Hash-Objekt noch vor vier Operationen aktiv war. Erst wenn Gits interner Garbage Collector (git gc) tief in der Nacht läuft und periodisch Reste zusammenfegt, werden abgetrennte (dangling) Graphen physikalisch von der SSD gelöscht.
5. Prüfen
Ist Git das gleiche wie GitHub?
Nein! Git ist das Werkzeug (Hammer). GitHub ist die Webseite, wo man den Code speichert (Werkstatt). Es gibt auch GitLab oder Bitbucket.Ist das nur für Code?
Meistens. Man kann auch Word-Dateien tracken, aber Git ist schlecht darin, Unterschiede in Binär-Dateien (Bilder, PDFs) anzuzeigen. Für Text ist es perfekt.Ist es schwer zu lernen?
Ja. Die Befehle sind kryptisch. Aber mit grafischen Tools (GitKraken, VS Code) geht es einfacher. Es ist aber Pflichtwissen für jeden IT-Job.
Zusammenfassung
- Kennst du Dateinamen wie hausarbeitfinal.doc, hausarbeitfinalwirklichfertig.doc, hausarbeitNEU.doc? Das ist Chaos. Git ist die Zeitmaschine für Code. Es speichert jeden Zustand deiner Arbeit. Du kannst jederzeit sagen: "Geh zurück zum Stand von gestern...
- Das wichtigste Tool für Programmierer. Begriffe: Repository (Repo): Der Projektordner. Commit: Ein Speicherpunkt ("Foto" der Dateien machen). Push: Code ins Internet hochladen (z. B. nach GitHub). Pull: Code von anderen herunterladen.
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre Git in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Git relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Code S1
Überblick: Code sind Anweisungen, die ein Computer ausführen oder übersetzen kann. Menschen schreiben Code in Programmiersprachen, damit Software ein bestimmtes Verhalten bekommt. Code kann sehr klein sein, etwa eine Formel, oder riesig wie ein Betriebssystem.
Einfach erklärt: Entwickler schreiben Code, testen ihn, lesen ihn gegenseitig und speichern ihn in Versionsverwaltung. Guter Code ist nicht nur "funktioniert", sondern auch verständlich, testbar und aenderbar. Kommentare helfen nur dort, wo die Absicht nicht sofort klar ist.
Tiefer verstanden: Code besteht aus Syntax, Namen, Kontrollfluss, Datenstrukturen und Schnittstellen. Kontrollfluss nutzt oft loop oder Bedingungen; saubere Grenzen entstehen durch interface, function und gut benannte Daten. Er wird interpretiert, kompiliert oder zur Laufzeit ausgeführt. Qualität entsteht durch klare Verantwortlichkeiten, kleine Funktionen, Tests, Linting, Reviews und sichere Abhaengigkeiten.
Praxisgrenze: Code kann korrekt aussehen und trotzdem falsche Annahmen enthalten. Besonders gefaehrlich sind versteckte Seiteneffekte, globale Zustaende, unklare Fehlerbehandlung und fehlende Tests. In größeren Systemen ist Lesbarkeit oft wichtiger als eine besonders clevere Kurzlösung.
Ist Code dasselbe wie Software?
Nein. Code ist ein Teil von Software. Software umfasst auch Daten, Konfiguration, Assets, Builds und Betrieb.Was macht Code wartbar?
Klare Namen, kleine Einheiten, Tests, einfache Struktur und dokumentierte Annahmen.Was ist eine typische Falle?
Cleveren Code zu schreiben, den später niemand sicher ändern kann.
Software S1
Überblick: Software ist der Teil eines Computers, den man nicht anfassen kann: Programme, Apps, Betriebssysteme, Treiber und Skripte. Hardware ist das Gerät, Software sagt dem Gerät, was es tun soll. Ohne Software wäre ein Computer nur Elektronik ohne Aufgabe.
Einfach erklärt: Ein Browser, ein Textprogramm, ein Spiel, eine App und ein Serverdienst sind Software. Nutzer installieren oder öffnen sie, Entwickler schreiben und pflegen sie. Unternehmen achten auf Updates, Lizenzen, Sicherheit, Kompatibilitaet und Support.
Tiefer verstanden: Software kann aus Quellcode, Bibliotheken, Konfigurationsdateien, Assets und Build-Artefakten bestehen. Moderne Systeme trennen oft Frontend, Backend, Datenbank, Infrastrukturcode und Automatisierungen. Qualität entsteht durch Tests, Reviews, Versionierung, Monitoring und klare Architektur.
Praxisgrenze: Software altert, auch wenn sie nicht angefasst wird: Abhaengigkeiten bekommen Sicherheitslücken, Plattformen ändern sich, Daten wachsen und Nutzeranforderungen verschieben sich. Deshalb ist Wartbarkeit wichtiger als nur "es läuft gerade". Schlechte Update- und Backup-Prozesse machen harmlose Änderungen riskant.
Was unterscheidet Software von Hardware?
Hardware ist das physische Gerät. Software sind Programme, Regeln und Daten, die auf dieser Hardware laufen.Warum braucht Software Updates?
Updates beheben Fehler, Sicherheitslücken, Kompatibilitaetsprobleme und erweitern Funktionen.Was ist eine typische Praxisfalle?
Nur auf sichtbare Features zu achten und Wartung, Tests, Lizenzen und Sicherheit zu ignorieren.
Schritt 38 / 65
Microservices
Systeme in kleinere Services schneiden.
S1
Schritt 38 / 65
Microservices
Systeme in kleinere Services schneiden.
1. Verstehen
Stell dir ein riesiges Schweizer Taschenmesser vor, das 10 Kilo wiegt (Monolith). Es hat Löffel, Säge, Lupe und Zange. Wenn die Säge bricht, musst du das ganze Messer zur Reparatur geben. Du hast keinen Löffel mehr.
Microservices ist, als hättest du einen Werkzeugkasten mit vielen einzelnen Werkzeugen.
- Ein Löffel.
- Eine Säge.
- Eine Zange. Wenn die Säge kaputt ist, tauschst du nur die Säge aus. Der Löffel funktioniert weiter. Jedes Werkzeug macht nur eine Sache, aber die macht es perfekt.
Merksatz: Ein Architekturstil, bei dem eine App in viele kleine, unabhängige Dienste zerlegt wird.
2. Anwenden
Amazon.com ist nicht eine Webseite. Es sind hunderte Microservices.
- Service A: Zeigt Produkte an.
- Service B: Verwaltet den Warenkorb.
- Service C: Schreibt Rechnungen.
- Service D: Empfiehlt ähnliche Produkte.
Vorteile:
- Team A kann den Warenkorb verbessern, ohne mit Team C (Rechnungen) reden zu müssen.
- Wenn der "Empfehlungs-Service" abstürzt, geht Amazon trotzdem noch (du siehst nur keine Empfehlungen). In einem Monolithen würde der ganze Shop abstürzen.
Praxisroutine
In der Praxis lernst du Microservices, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. Kommunikation (REST / gRPC)
Die Services müssen reden. "Hey Rechnungsservice, User X hat bestellt." Das passiert meistens über APIs (REST oder gRPC) oder über Nachrichten (Message Queues wie Kafka). Das Netzwerk wird zur kritischen Komponente.
2. Spaghetti-Architektur
Die Gefahr: Wenn du 500 Services hast, weiß keiner mehr, wer wen aufruft. "Ich hab Service A geändert, warum geht Service Z nicht mehr?" Man braucht extrem gutes Monitoring (Observability), um den Überblick zu behalten ("Wer redet mit wem?").
Technische Einordnung im System
Technisch ist Microservices nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
4. Vertiefen
1. CAP Theorem und Distributed Data
In einem SQL-Monolithen hast du "ACID"-Garantien (Transactions). Wenn der Ticket-Kauf klappt, sinkt die User-Balance. Klappt etwas nicht, rollt die gesamte Datenbank zurück.
Microservices zerreißen das: Der Checkout-Service verwaltet eine MongoDB, der Balance-Service eine Postgres.
Das CAP-Theorem (Consistency, Availability, Partition Tolerance) diktiert, dass man bei Netzwerkbrüchen wählen muss. Entweder der Shop nimmt kein Ticket an (Availability stirbt), oder man akzeptiert asynchrone Konsistenz (Eventual Consistency).
Die Ticket-Bestellung feuert Kafka-Events ab (TicketCreated). Der Payment-Service konsumiert sie asynchron. Wenn der Payment Service 3 Stunden offline ist, sitzt die Buchung in Kafka in der Queue und wird final verarbeitet ("Saga-Pattern"), sobald Payment rebootet. Strikte "Transaktionen" sind tot, asynchrone Kompensation ist der King.
2. Das API Gateway Pattern (Backend for Frontend)
Wenn der iOS Client das Profil, die letzten 5 Käufe und die Favoriten eines Users abrufen möchte, muss er im Microservice-Backend bei roher Architektur nun 3 externe Service-HTTP-Calls ins WAN jagen. Bei 3G-Netz ein Performance-Wahnsinn (Chatty Client). Die Lösung ist das API Gateway. Das Gateway ist der einzige exponierte Public-Port. Das iPhone sendet exakt einen Request. Das Gateway bündelt die Anfrage (Fanning) auf dem ultra-schnellen internen Layer-2-Netz ins Rechenzentrum der 3 Services, aggregiert die 3 JSON-Antworten zu einem Mega-Block, und sendet ihn ans iPhone. Weiterer Vorteil: Das Gateway regelt Auth, Rate-Limiting und Cross-Origin Resource Sharing (CORS) zentral für jegliche dahinterliegende 500 Services.
3. Conway's Law
Warum spalten Firmen Software in Services? Nicht wegen Serverkosten. Wegen HR! "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." (Conway's Law, 1967). Wenn Firma 5 stark getrennte Abteilungen (Billing, Auth, Ads, SEO, Content) hat, die nie miteinander sprechen, wird ihr gebauter Software-Monolith in Kürze kollabieren, weil Code im git bei Merges kollidert. Microservices erlauben es der Firma 5 isolierte Repositorys ("Bounded Contexts" im Domain-Driven Design) zu gründen. Das Ad-Team deployt ihren Node.js Microservice freitags 14 Uhr, ohne dass das Billing-Team (welches in Java baut und quartalsweise veröffentlich) jemals beeinträchtigt oder überhaupt informiert werden muss.
5. Prüfen
Sind Microservices immer besser?
Nein! Für kleine Startups sind sie der "Overkill". Sie sind extrem komplex zu verwalten (Deployment, Netzwerk). Fang mit einem Monolithen an. Zerlege ihn erst, wenn du groß bist.Wie groß ist ein "Micro"-Service?
Faustregel: Er sollte von einem kleinen Team ("Two Pizza Team", 5-8 Leute) komplett verstanden und gewartet werden können.Brauche ich Docker dafür?
Praktisch ja. Man kann Microservices auch so betreiben, aber Container sind das ideale Zuhause für sie. Jeder Service bekommt seinen eigenen Container.
Zusammenfassung
- Stell dir ein riesiges Schweizer Taschenmesser vor, das 10 Kilo wiegt (Monolith). Es hat Löffel, Säge, Lupe und Zange. Wenn die Säge bricht, musst du das ganze Messer zur Reparatur geben. Du hast keinen Löffel mehr.
- Amazon.com ist nicht eine Webseite. Es sind hunderte Microservices. Service A: Zeigt Produkte an. Service B: Verwaltet den Warenkorb. Service C: Schreibt Rechnungen. Service D: Empfiehlt ähnliche Produkte.
- Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Optionale Praxisaufgabe
- Erkläre Microservices in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem Microservices relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Skizziere einen Mini-Test oder Diagnoseweg, mit dem du den Begriff praktisch überprüfst.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.
Erklärbegriffe zu diesem Schritt
Software S1
Überblick: Software ist der Teil eines Computers, den man nicht anfassen kann: Programme, Apps, Betriebssysteme, Treiber und Skripte. Hardware ist das Gerät, Software sagt dem Gerät, was es tun soll. Ohne Software wäre ein Computer nur Elektronik ohne Aufgabe.
Einfach erklärt: Ein Browser, ein Textprogramm, ein Spiel, eine App und ein Serverdienst sind Software. Nutzer installieren oder öffnen sie, Entwickler schreiben und pflegen sie. Unternehmen achten auf Updates, Lizenzen, Sicherheit, Kompatibilitaet und Support.
Tiefer verstanden: Software kann aus Quellcode, Bibliotheken, Konfigurationsdateien, Assets und Build-Artefakten bestehen. Moderne Systeme trennen oft Frontend, Backend, Datenbank, Infrastrukturcode und Automatisierungen. Qualität entsteht durch Tests, Reviews, Versionierung, Monitoring und klare Architektur.
Praxisgrenze: Software altert, auch wenn sie nicht angefasst wird: Abhaengigkeiten bekommen Sicherheitslücken, Plattformen ändern sich, Daten wachsen und Nutzeranforderungen verschieben sich. Deshalb ist Wartbarkeit wichtiger als nur "es läuft gerade". Schlechte Update- und Backup-Prozesse machen harmlose Änderungen riskant.
Was unterscheidet Software von Hardware?
Hardware ist das physische Gerät. Software sind Programme, Regeln und Daten, die auf dieser Hardware laufen.Warum braucht Software Updates?
Updates beheben Fehler, Sicherheitslücken, Kompatibilitaetsprobleme und erweitern Funktionen.Was ist eine typische Praxisfalle?
Nur auf sichtbare Features zu achten und Wartung, Tests, Lizenzen und Sicherheit zu ignorieren.
Container S1
Überblick: Ein Container ist wie eine Lunchbox für Software. Wenn du dein Mittagessen (Nudeln) einfach so in den Rucksack wirfst, vermischt es sich mit deinen Büchern (Chaos). Wenn du es in eine Lunchbox tust, ist es sicher und du kannst es überall hin mitnehmen (Schule, Arbeit, Picknick). Software hat das gleiche Problem: Sie vermischt sich oft mit dem Betriebssystem und geht kaputt. In einem Container ist alles drin, was die Software braucht (Code, Bibliotheken). Sie läuft dadurch auf jedem Computer gleich.
Einfach erklärt: Das wichtigste Tool für Container ist Docker. Prozess: 1. Entwickler schreibt Code. 2. Entwickler packt Code in Container ("Build"). 3. Entwickler gibt Container an Server. 4. Server führt Container aus ("Run").
Tiefer verstanden: Technisch endet ein Container, wenn sein Hauptprozess endet. Darum ist wichtig, welcher Prozess im Vordergrund läuft, welche Dateien persistent sind und welche Daten beim Loeschen verschwinden.
Ist ein Container eine Virtuelle Maschine?
Nein. Eine VM simuliert einen ganzen PC (inkl. Hardware und Kernel). Ein Container nutzt den Kernel des Wirts (Host) mit. Container sind viel leichter und schneller.Was ist Kubernetes?
Ein "Container-Kapitän". Wenn du 1.000 Container hast, kannst du sie nicht von Hand starten. Kubernetes managt sie ("Start Container A neu, wenn er abstürzt").Sind Container sicher?
Ja, aber weniger isoliert als VMs. Wenn der Kernel einen Fehler hat, könnten alle Container betroffen sein ("Container Breakout"). Aber für normale Apps reicht es völlig.
Schritt 39 / 65
GraphQL
Alternative API-Abfragen für komplexe Datenmodelle.
S3
Schritt 39 / 65
GraphQL
Alternative API-Abfragen für komplexe Datenmodelle.
1. Verstehen
In REST APIs (der Standard) bestellst du Menüs.
Endpoint /user: Du bekommst Name, Alter, Adresse, Schuhgröße.
Was, wenn du nur den Namen willst? Pech, du kriegst alles (Over-Fetching).
Was, wenn du auch noch die Freunde des Users willst? Musst du einen zweiten Request an /user/friends machen (Under-Fetching).
GraphQL ist wie ein Buffet.
Du sagst dem Server exakt, was du willst:
{ user { name, friends { name } } }
Der Server gibt dir exakt dieses JSON zurück. Nicht mehr, nicht weniger.
Ein Request für alles.
Merksatz: Eine Abfragesprache für APIs, die es dem Client ermöglicht, genau die Daten anzufordern, die er benötigt, und Probleme wie Over- und Under-Fetching löst.
2. Anwenden
Erfunden von Facebook.
Du definierst ein Schema (Typen):
type User { name: String, friends: [User] }.
Das Frontend-Team liebt es, weil sie das Backend-Team nicht mehr nerven müssen ("Baut mir bitte einen Endpoint für Mobile, der nur den Namen liefert!"). Sie schreiben einfach eine andere Query.
Praxisroutine
In der Praxis lernst du GraphQL, indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
3. Technisch einordnen
1. N+1 Problem
Die Performance-Falle.
Query: "Gib mir 10 User und deren Freunde."
Der Server lädt 1x User-Liste (SQL).
Dann macht er für jeden der 10 User eine extra SQL-Abfrage für die Freunde.
1 + 10 = 11 Queries. Bei 1000 Usern bricht die DB zusammen.
Lösung: DataLoader (Batching). Er sammelt alle IDs und macht eine Abfrage: SELECT * FROM friends WHERE user_id IN (...).
2. Caching
REST ist einfach zu cachen (per URL). /user/1 ist immer gleich.
GraphQL läuft immer über POST /graphql. Für den Browser sieht jede Anfrage gleich aus.
Caching muss also in der App (Client-Side Caching wie Apollo Client) passieren, nicht im Netzwerk.
4. Vertiefen
1. AST Analysis und Complexity Limits
GraphQL erlaubt der Frontend-App gnadenlose Macht. Was hindert den Client an einem "Denial-of-Service" (DoS), indem er eine 100-Level tiefe rekursive Abfrage schickt (user -> posts -> comments -> author -> posts ...)?
Backend-Teams müssen im Resolver Complexity Estimation via Abstract Syntax Tree (AST) Routing parken.
Bevor GraphQL die Query an die DB flutet, parst das Framework sie und weist jedem Feld Weightings zu (z.B. User = 1, Post = 5). Erreicht die Akkumulation in der Graph-Traverse z.B. 1000 Punkte, wird die Query hart verworfen. Ohne strenges Depth Limiting, Complexity Scoring und Rate Limiting wird ein öffentliches GraphQL-Gateway vom kleinsten Scrape-Skript in Millisekunden down gezogen.
2. Federation und The Supergraph (Apollo)
In Microservices ist ein Monolithisches GraphQL-Schema ein Anti-Pattern (das "God API" Problem).
Die Lösung heißt GraphQL Federation (Apollo).
Das Cart-Team deployed einen CartService, das Review-Team einen ReviewService. Beide haben eigene, kleine GraphQL-Endpoints.
Ein vorgelagerter zentraler Apollo-Gateway reist als Architekt durch die Services, liest die Subgraphen und flickt sie zu einem "Supergraph" zusammen. Stellt der Client die komplexe Query { User { Name, CartTotal } }, trennt das Gateway die Query, leitet den ersten Branch an Serivce A, den zweiten Teil parallel an Service B, kombiniert JSON-Streams performant als Merge-Block in RAM, und schickt nur ein fertiges Päckchen zum Client aus.
3. Persisted Queries und Frontend-Compiling
GraphQL Queries in der HTTP POST-Payload sind enorm groß (oft hunderte Zeilen Strings). Das fraß Mobilfunk-Daten und zerstörte HTTP/GET basiertes CDN (Cloudflare) Caching, da POST nicht gecachet wird.
Profis nutzen Persisted Queries.
Beim Build-Schritt der React-App hashen Webpack/Relay-Compiler jede statische graphql-Query aus den Dateien (Hash: 3bcx9...).
Die Mobile App schickt ab sofort nur noch via GET /graphql?hash=3bcx9 das Minimal-Kürzel. Der Server kennt das Dictionary, repliziert lokal die AST Query, und – weil es nun idempotent via GET agiert – glühen die Edge-Knoten auf Fastlys CDNs wieder perfekt.
5. Prüfen
Ist REST tot?
Nein. REST ist simpler, besser cachebar und robuster für einfache Dinge. Öffentliche APIs sind oft noch REST. Komplexe interne Apps (Facebook) sind GraphQL.Kann man files uploaden?
Schwierig. GraphQL Standard sieht das nicht vor. Man muss Tricks nutzen (Multipart Request) oder das separat machen.Wer validiert die Daten?
Das Schema. Wenn du einen String schickst, wo ein Int erwartet wird, lehnt GraphQL ab, bevor dein Code überhaupt läuft. Strong Typing!
Zusammenfassung
- In REST APIs (der Standard) bestellst du Menüs. Endpoint /user: Du bekommst Name, Alter, Adresse, Schuhgröße. Was, wenn du nur den Namen willst? Pech, du kriegst alles (Over-Fetching). Was, wenn du auch noch die Freunde des Users willst? Musst du einen...
- Erfunden von Facebook. Du definierst ein Schema (Typen): type User { name: String, friends: [User] }. Das Frontend-Team liebt es, weil sie das Backend-Team nicht mehr nerven müssen ("Baut mir bitte einen Endpoint für Mobile, der nur den Namen liefert!"). Sie...
Optionale Praxisaufgabe
- Erkläre GraphQL in drei Sätzen so, dass ein kompletter Anfänger folgen kann.
- Notiere ein echtes Beispiel aus Alltag, Arbeit oder Projekt, in dem GraphQL relevant wird.
- Schreibe eine typische Fehlerannahme auf und daneben, wie du sie prüfen würdest.
- Optional: Lege einen kleinen Nachweis an: Checkliste, Beispiel, Messwert, Screenshot oder kurze Begründung.
Lernauftrag für diesen Schritt
- Formuliere die Kerndefinition in einem eigenen Satz.
- Notiere ein praktisches Beispiel, in dem du diesen Begriff wirklich brauchen würdest.
- Beantworte den Quick-Check ohne Nachschauen und prüfe danach die Antworten.
- Gehe erst weiter, wenn du den Begriff jemandem ohne Fachsprache erklären kannst.