Skip to content
BitDojo
Wie das Web funktioniert
GrundlagenFree11 min read

Wer redet da eigentlich mit wem

Du kannst erklären, welche Arbeit auf dem Gerät des Nutzers passiert, welche auf einem fremden Rechner, und warum diese Trennung keine technische Marotte ist.

Im letzten Kapitel gab es eine Anfrage und eine Antwort. Jetzt schauen wir uns die beiden an, die das tun. Sie heißen Client und Server, und diese zwei Wörter kommen in jedem Gespräch über Software vor.

Die Namen klingen technisch, meinen aber etwas Alltägliches. Client heißt Kunde, Server heißt Bedienung. Im Restaurant bestellst du, und jemand bringt. Genauso hier.

Der Client: das Gerät in deiner Hand

Der Client ist das Gerät, an dem der Mensch sitzt. Dein Telefon, dein Laptop, das Tablet. Genauer gesagt ist es das Programm darauf, das die Anfrage stellt, also meistens der Browser.

Der letzte Satz ist wichtiger, als er aussieht. Alles, was auf dem Client passiert, kann der Nutzer sehen und ändern. Er kann den Quelltext lesen, Werte verändern, Anfragen abfangen. Das ist keine Sicherheitslücke, sondern die Bauweise des Netzes.

Daraus folgt eine Regel, die dich durch den ganzen Kurs begleitet und die im Bewerbungsgespräch zuverlässig gefragt wird.

Ein Beispiel dazu. Eine Bestellseite zeigt einen Preis von 19,99 Euro und schickt diesen Preis beim Absenden mit. Wer den Wert im Browser auf 0,01 ändert, bestellt für einen Cent. Nicht, weil die Seite schlecht programmiert wäre, sondern weil der Server dem Client geglaubt hat. Richtig wäre: Der Client schickt nur, welcher Artikel gemeint ist, und den Preis schlägt der Server selbst nach.

Der Server: ein Rechner, der wartet

Der Server ist ein Rechner, der nichts anderes tut, als auf Anfragen zu warten und sie zu beantworten. Er steht in einem Rechenzentrum, läuft rund um die Uhr und hat keinen Bildschirm.

Ein Server bedient nicht einen Nutzer, sondern viele gleichzeitig. Das ist der zweite große Unterschied zum Client. Wenn dein Code auf dem Client eine halbe Sekunde braucht, wartet ein Mensch. Wenn er auf dem Server eine halbe Sekunde braucht, warten unter Umständen tausend.

Warum überhaupt trennen

Man könnte fragen, warum nicht alles auf dem Gerät des Nutzers läuft. Drei Gründe, und alle drei sind praktisch.

Erstens die gemeinsamen Daten. Wenn du in einem Onlineshop bestellst, muss der Lagerbestand für alle derselbe sein. Läge er auf deinem Telefon, wüsste niemand sonst davon.

Zweitens das Vertrauen. Wer prüft, ob du bezahlt hast? Der Client kann das nicht glaubwürdig behaupten. Die Prüfung muss dort passieren, wo der Nutzer nicht mitschreiben kann.

Drittens die Geheimnisse. Der Zugang zur Datenbank, der Schlüssel für den Zahlungsdienst, das Passwort für den Mailversand: All das darf nie auf ein Gerät gelangen, das jemand anderem gehört.

Wo die Grenze heute verläuft

Früher war die Aufteilung einfach: Der Server schickte fertige Seiten, der Client zeigte sie an. Heute läuft auch auf dem Client viel Programmcode, und manche Anwendungen fühlen sich dort an wie ein eigenes Programm.

Das verschiebt die Grenze, hebt sie aber nicht auf. Die Frage bleibt bei jedem einzelnen Stück Arbeit dieselbe: Darf der Nutzer das sehen und beeinflussen? Wenn ja, kann es auf den Client. Wenn nein, muss es auf den Server.

Anzeigen und Sortieren einer Liste, die der Nutzer ohnehin sieht: Client. Entscheiden, welche Einträge er überhaupt bekommt: Server. Ein Formular auf Vollständigkeit prüfen, damit die Rückmeldung sofort kommt: Client. Dieselbe Prüfung noch einmal, damit sie auch gilt: Server.

Exerciseabout 30 minutes

Die Grenze in einer echten Anwendung ziehen

Nimm eine Anwendung, die du selbst benutzt, zum Beispiel einen Onlineshop oder ein soziales Netzwerk. Schreibe zehn Dinge auf, die sie tut, und ordne jedes einer der beiden Seiten zu.

Beispiele zum Anfangen: das Menü aufklappen, den Warenkorb anzeigen, den Preis berechnen, prüfen ob du eingeloggt bist, ein Bild hochladen, nach Produkten suchen, die Sprache umstellen.

Schreibe zu jeder Zuordnung einen Satz, warum. Wenn du bei einem Punkt zögerst, stelle dir die Frage: Was passiert, wenn der Nutzer hier lügt?

Done when

  • Du hast zehn Vorgänge notiert und jeweils einer Seite zugeordnet.
  • Zu jedem steht eine Begründung, die nicht "das macht man so" lautet.
  • Du hast mindestens einen Vorgang gefunden, der auf beiden Seiten passieren muss.

Has it stuck?

6 cards from this lesson, 6 questions in the exam pool.