223015c 02: layer 1 (bit) ergänzt, tabellen-refactor, http/2.0, dimmed/klausur-klassen
This commit is contained in:
@@ -91,6 +91,9 @@ section.erklaerung p {
|
|||||||
section.erklaerung table {
|
section.erklaerung table {
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
}
|
}
|
||||||
|
section.dimmed {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- _class: invert -->
|
<!-- _class: invert -->
|
||||||
@@ -197,26 +200,14 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
Das Web folgt dem **Client-Server-Modell**: Ein Client (Browser) sendet einen **Request**, ein Server liefert eine **Response** – nach den Regeln eines **Protokolls**.
|
Das Web folgt dem **Client-Server-Modell**: Ein Client (Browser) sendet einen **Request**, ein Server liefert eine **Response** – nach den Regeln eines **Protokolls**.
|
||||||
|
|
||||||
| Begriff | Was ist das? | Analogie |
|
| Begriff | Was ist das? |
|
||||||
|---------|--------------|----------|
|
|---------------|--------------------------------------------------------------------------|
|
||||||
| **Host** | Ein Rechner im Netz | Ein Haus mit Adresse |
|
| **Host** | Ein netzwerkfähiger Rechner (Laptop, Smartphone, Display in S-Bahn etc.) |
|
||||||
| **Client** | Der, der fragt (Browser) | Gast im Restaurant |
|
| **Client** | Host bzw. Anwendung mit einer Anfrage (bspw. Browser) |
|
||||||
| **Server** | Der, der antwortet | Küche im Restaurant |
|
| **Server** | Host bzw. Anwendung mit der Antwort (bspw. Webserver) |
|
||||||
| **Request** | Die Anfrage | Bestellung |
|
| **Request** | Die Anfrage des Clients |
|
||||||
| **Response** | Die Antwort | Das Essen |
|
| **Response** | Die Antwort des Servers |
|
||||||
| **Protokoll** | Regeln für Kommunikation (z. B. TCP, HTTP) | Speisekarte + Bestellablauf |
|
| **Protokoll** | Regeln für Kommunikation (z. B. TCP, HTTP) |
|
||||||
|
|
||||||
<!--
|
|
||||||
SPEAKER NOTES:
|
|
||||||
- 6 Grundbegriffe – tauchen überall auf
|
|
||||||
- Client/Server = Grundstruktur des Webs
|
|
||||||
- Browser = Client
|
|
||||||
- Google/HdM/Netflix = Server
|
|
||||||
- Request/Response = Kommunikationsmuster
|
|
||||||
- Protokoll = Regelwerk
|
|
||||||
- Analogie: Restaurant in Japan ohne Regeln zu kennen
|
|
||||||
- Host = Rechner mit Adresse im Netz
|
|
||||||
-->
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -253,13 +244,15 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
Daten werden Schicht für Schicht verpackt — jede Schicht fügt einen eigenen **Header** hinzu und erzeugt so eine neue Dateneinheit.
|
Daten werden Schicht für Schicht verpackt — jede Schicht fügt einen eigenen **Header** hinzu und erzeugt so eine neue Dateneinheit.
|
||||||
|
|
||||||
| Begriff | Was ist das? | Schicht |
|
| Begriff | Was ist das? | Schicht |
|
||||||
|---------|--------------|---------|
|
|-------------|-------------------------------------------------------|--------------------------|
|
||||||
| **Paket** | Daten + IP-Header | Internet (Layer 3) |
|
| **Payload** | Die eigentlichen Nutzdaten (bspw. Request, Response) | Anwendung |
|
||||||
| **Segment** | Daten + TCP-Header | Transport (Layer 4) |
|
| **Header** | Metadaten vor und nach dem Payload | Jedes Layer |
|
||||||
| **Frame** | Daten + MAC-Header | Netzzugang (Layer 2) |
|
| **Segment** | Payload + TCP-Header (Anwendungsport) | Transport (Layer 4) |
|
||||||
| **Header** | Metadaten am Anfang | Jede Schicht |
|
| **Paket** | Payload + IP-Header (WLAN-Router) | Internet (Layer 3) |
|
||||||
| **Payload** | Die eigentlichen Nutzdaten | Der Inhalt |
|
| **Frame** | Payload + MAC-Header (Netzwerkkarte) | Netzzugang (Layer 2) |
|
||||||
|
| **Bit** | Abfolge von Signalen (Licht, Strom, Kabel, Mobilfunk) | Bitübertragung (Layer 1) |
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPEAKER NOTES:
|
SPEAKER NOTES:
|
||||||
@@ -268,7 +261,6 @@ SPEAKER NOTES:
|
|||||||
- Header = Metadaten (wer, wohin, wie groß)
|
- Header = Metadaten (wer, wohin, wie groß)
|
||||||
- Paket/Segment/Frame = gleiche Daten, verschiedene Verpackung
|
- Paket/Segment/Frame = gleiche Daten, verschiedene Verpackung
|
||||||
- Wie Matroschka: Schicht packt Schicht ein
|
- Wie Matroschka: Schicht packt Schicht ein
|
||||||
- Wird klarer beim Schichtenmodell gleich
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -279,13 +271,13 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
**Latenz** und **Bandbreite** bestimmen, wie schnell Daten ankommen — Latenz misst die Verzögerung, Bandbreite die Kapazität.
|
**Latenz** und **Bandbreite** bestimmen, wie schnell Daten ankommen — Latenz misst die Verzögerung, Bandbreite die Kapazität.
|
||||||
|
|
||||||
| Begriff | Was ist das? | Einheit |
|
| Begriff | Was ist das? | Einheit |
|
||||||
|---------|--------------|---------|
|
|----------------|-------------------------------------------------|--------------------|
|
||||||
| **Latenz** | Verzögerung (hin + zurück) | Millisekunden |
|
| **Latenz** | Verzögerung (hin + zurück) | Millisekunden (ms) |
|
||||||
| **Bandbreite** | Datenmenge pro Zeiteinheit | Mbit/s |
|
| **Bandbreite** | Datenmenge pro Zeiteinheit | Mbit/s |
|
||||||
| **Hop** | Ein Sprung zum nächsten Router | – |
|
| **Hop** | Ein Sprung zum nächsten Router (im Internet) | – |
|
||||||
| **Round-Trip** | Hin- und Rückweg | – |
|
| **Round-Trip** | Hin- und Rückweg | – |
|
||||||
| **Ping** | "Bist du da?" + Antwort | ms |
|
| **Ping** | Client sendet "ping", bekommt von Server "pong" | ms |
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPEAKER NOTES:
|
SPEAKER NOTES:
|
||||||
@@ -309,14 +301,17 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
Protokolle regeln die Kommunikation auf jeder Schicht — von der Anwendung (HTTP) über den Transport (TCP/UDP) bis zum Routing (IP).
|
Protokolle regeln die Kommunikation auf jeder Schicht — von der Anwendung (HTTP) über den Transport (TCP/UDP) bis zum Routing (IP).
|
||||||
|
|
||||||
| Protokoll | Wofür? | Port | Schicht |
|
| Protokoll | Wofür? | Port | Schicht |
|
||||||
|-----------|--------|------|---------|
|
|-----------|--------------------------------|------|---------------------|
|
||||||
| **HTTP** | Webseiten übertragen | 80 | Anwendung |
|
| **HTTP** | Webseiten + Inhalte übertragen | 80 | Anwendung (Layer 4) |
|
||||||
| **HTTPS** | HTTP + Verschlüsselung | 443 | Anwendung |
|
| **HTTPS** | HTTP + Verschlüsselung | 443 | Anwendung (Layer 4) |
|
||||||
| **TCP** | Zuverlässige Übertragung | – | Transport |
|
| **DNS** | Namen → IP-Adressen | 53 | Anwendung (Layer 4) |
|
||||||
| **UDP** | Schnelle Übertragung | – | Transport |
|
| **TCP** | Zuverlässige Übertragung | – | Transport (Layer 4) |
|
||||||
| **IP** | Routing durchs Internet | – | Internet |
|
| **UDP** | Schnelle Übertragung | – | Transport (Layer 4) |
|
||||||
| **DNS** | Namen → IP-Adressen | 53 | Anwendung |
|
| **IP** | Routing durchs Internet | – | Internet (Layer 3) |
|
||||||
|
|
||||||
|
<i><small>HTTP(S) = Hypertext Transfer Protocol (Secure)</small> · <small>DNS = Domain Name System</small> · <small>TCP = Transmission Control Protocol</small> · <small>UDP = User Datagram Protocol</small> · <small>IP = Internet Protocol</small>
|
||||||
|
</i>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPEAKER NOTES:
|
SPEAKER NOTES:
|
||||||
@@ -402,12 +397,12 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
# Das TCP/IP-Modell
|
# Das TCP/IP-Modell
|
||||||
|
|
||||||
| Schicht | Name | Aufgabe | Protokolle |
|
| Schicht | Name | Aufgabe | Protokolle |
|
||||||
|---------|------|---------|------------|
|
|---------|------|------------------------------------------|-------------------|
|
||||||
| **4** | Anwendung | Was? Welcher Dienst? | HTTP, DNS, SMTP |
|
| **4** | Anwendung | Dienste steuern, Daten austauschen etc. | HTTP, DNS, SMTP |
|
||||||
| **3** | Transport | Zuverlässigkeit, Ports | TCP, UDP |
|
| **3** | Transport | Zuverlässige Verbindung aufbauen (Ports) | TCP, UDP |
|
||||||
| **2** | Internet | Routing, globale Adressen | IP |
|
| **2** | Internet | Routing, global eindeutige Adressen | IP |
|
||||||
| **1** | Netzzugang | Lokale Übertragung | Ethernet, WLAN |
|
| **1** | Netzzugang | Lokale Übertragung | Ethernet, WLAN |
|
||||||
|
|
||||||
Jede Schicht hat genau eine Aufgabe und nutzt nur die Schicht direkt darunter.
|
Jede Schicht hat genau eine Aufgabe und nutzt nur die Schicht direkt darunter.
|
||||||
|
|
||||||
@@ -419,12 +414,11 @@ SPEAKER NOTES:
|
|||||||
- Transport: Kommt an? Welches Programm? (TCP, UDP)
|
- Transport: Kommt an? Welches Programm? (TCP, UDP)
|
||||||
- Internet: Wie zum Zielrechner? (IP)
|
- Internet: Wie zum Zielrechner? (IP)
|
||||||
- Netzzugang: Wie zum nächsten Gerät? (Ethernet, WLAN)
|
- Netzzugang: Wie zum nächsten Gerät? (Ethernet, WLAN)
|
||||||
- KLAUSUR: Welches Protokoll → welche Schicht
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- _class: erklaerung -->
|
<!-- _class: "erklaerung dimmed" -->
|
||||||
<!-- _header: '' -->
|
<!-- _header: '' -->
|
||||||
<!-- _footer: '' -->
|
<!-- _footer: '' -->
|
||||||
|
|
||||||
@@ -1009,7 +1003,7 @@ SPEAKER NOTES:
|
|||||||
# Was Ihr Browser sendet
|
# Was Ihr Browser sendet
|
||||||
|
|
||||||
```http
|
```http
|
||||||
GET / HTTP/1.1
|
GET / HTTP/2.0
|
||||||
Host: www.hdm-stuttgart.de
|
Host: www.hdm-stuttgart.de
|
||||||
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||||
Accept: text/html
|
Accept: text/html
|
||||||
@@ -1109,6 +1103,9 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
<!-- _class: dimmed -->
|
||||||
|
|
||||||
# Woher kennt Ihr Laptop die Router-MAC?
|
# Woher kennt Ihr Laptop die Router-MAC?
|
||||||
|
|
||||||
**ARP** – Address Resolution Protocol
|
**ARP** – Address Resolution Protocol
|
||||||
@@ -1441,6 +1438,8 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- _class: dimmed -->
|
||||||
|
|
||||||
# MTU & Fragmentierung
|
# MTU & Fragmentierung
|
||||||
|
|
||||||
**MTU** = Maximum Transmission Unit
|
**MTU** = Maximum Transmission Unit
|
||||||
@@ -1465,21 +1464,24 @@ SPEAKER NOTES:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
<!-- _class: klausur -->
|
||||||
|
<!-- _header: '' -->
|
||||||
|
<!-- _footer: '' -->
|
||||||
|
|
||||||
# HTTP-Methoden
|
# HTTP-Methoden
|
||||||
|
|
||||||
HTTP-Methoden beschreiben, **was** der Client mit einer Ressource tun will.
|
HTTP-Methoden beschreiben, **was** der Client mit einer Ressource tun will.
|
||||||
|
|
||||||
| Methode | Bedeutung | Beispiel |
|
| Methode | Bedeutung | Beispiel |
|
||||||
|---------|-----------|----------|
|
|---------|-----------|-----------------------------------------------|
|
||||||
| **GET** | Daten abrufen | Seite laden |
|
| **GET** | Daten abrufen | Seite laden `GET /index.html HTTP/2.0` |
|
||||||
| **POST** | Daten senden | Formular absenden |
|
| **POST** | Daten senden | Formular absenden `POST /login HTTP/2.0` |
|
||||||
| **PUT** | Daten ersetzen | Profil aktualisieren |
|
| **PUT** | Daten ersetzen | Profil aktualisieren `PUT /users/42 HTTP/2.0` |
|
||||||
| **DELETE** | Daten löschen | Account löschen |
|
| **DELETE** | Daten löschen | Account löschen `DELETE /users/42 HTTP/2.0` |
|
||||||
|
|
||||||
|
<small>CRUD = Create, Read, Update, Delete</small>
|
||||||
|
|
||||||
```http
|
|
||||||
GET /index.html HTTP/1.1
|
|
||||||
POST /login HTTP/1.1
|
|
||||||
```
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
SPEAKER NOTES:
|
SPEAKER NOTES:
|
||||||
@@ -1528,14 +1530,18 @@ POST /users → Neuen Benutzer erstellen
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- _class: klausur -->
|
||||||
|
<!-- _header: '' -->
|
||||||
|
<!-- _footer: '' -->
|
||||||
|
|
||||||
# HTTP Status-Codes
|
# HTTP Status-Codes
|
||||||
|
|
||||||
Jede HTTP-Response enthält einen dreistelligen Status-Code — die erste Ziffer verrät die Kategorie.
|
Jede HTTP-Response enthält einen dreistelligen Status-Code — die erste Ziffer verrät die Kategorie.
|
||||||
|
|
||||||
```http
|
```http
|
||||||
HTTP/1.1 200 OK
|
HTTP/2.0 200 OK
|
||||||
HTTP/1.1 404 Not Found
|
HTTP/2.0 404 Not Found
|
||||||
HTTP/1.1 500 Internal Server Error
|
HTTP/2.0 500 Internal Server Error
|
||||||
```
|
```
|
||||||
|
|
||||||
| Code-Bereich | Bedeutung |
|
| Code-Bereich | Bedeutung |
|
||||||
@@ -1586,6 +1592,9 @@ Die erste Ziffer kategorisiert die Antwort:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
<!-- _class: dimmed -->
|
||||||
|
|
||||||
# Zusammenfassung Teil 1
|
# Zusammenfassung Teil 1
|
||||||
|
|
||||||
**Der Ablauf:**
|
**Der Ablauf:**
|
||||||
@@ -1632,11 +1641,11 @@ Die vier Kernkonzepte für Web-Entwickelnde:
|
|||||||
- Caching auf jeder Ebene (TTL = Time To Live)
|
- Caching auf jeder Ebene (TTL = Time To Live)
|
||||||
|
|
||||||
**2. TCP-Verbindungsaufbau:**
|
**2. TCP-Verbindungsaufbau:**
|
||||||
- 3-Way-Handshake vor jeder HTTP-Anfrage (HTTP/1.1)
|
- 3-Way-Handshake vor jeder HTTP(S)-Anfrage (HTTP/2.0)
|
||||||
- Keep-Alive: Verbindung bleibt offen für mehrere Requests
|
- Keep-Alive: Verbindung bleibt offen für mehrere Requests
|
||||||
- HTTP/2: Multiplexing – viele Requests über eine Verbindung
|
- HTTP/2: Multiplexing – viele Requests über eine Verbindung
|
||||||
|
|
||||||
**3. HTTP Request/Response:**
|
**3. HTTP(S) Request/Response:**
|
||||||
```
|
```
|
||||||
Request: Methode + URL + Header + (Body)
|
Request: Methode + URL + Header + (Body)
|
||||||
Response: Status + Header + Body
|
Response: Status + Header + Body
|
||||||
|
|||||||
Reference in New Issue
Block a user