--- marp: true theme: gaia paginate: true backgroundColor: #fff header: "Dateiformate, Schnittstellen, Speichermedien & Distributionswege (223015b)" footer: "Michael Czechowski – HdM Stuttgart – SoSe 2026" title: Distribution und Metadaten --- # Kapitel 5 ## Distribution und Metadaten --- ![bg fit](./assets/demos/kap05-eroeffner.png) --- # Sub-Sektion A: Distribution — wie reist die Datei? --- # CDN — Content Delivery Network **Idee:** Daten dort speichern, wo die Nutzer:innen sind. Statt von **einem zentralen Server** in Kalifornien wird die Datei von einem **Edge-Server** in eurer Nähe geliefert. Beispiel: Netflix nutzt **Open Connect** — eigene Server in 1.000+ ISP-Rechenzentren weltweit. ~15 % des globalen Internet-Verkehrs. **Latenz** von Stuttgart zu Stuttgart: ~5 ms. **Latenz** von Stuttgart nach Kalifornien: ~150 ms. --- # Wie sieht das im DevTools aus? DevTools (F12) → Tab **Network** → reload eine Seite Was ihr seht: - **DNS-Lookup:** ~30 ms (oder gecacht: 0) - **TLS-Handshake:** ~50 ms - **TTFB** (Time to First Byte): ~80 ms wenn CDN, sonst 300+ - **Cache-Status:** Header `x-cache: HIT` oder `cf-cache-status: HIT` → **Selbstlernen:** öffnet eine populäre Seite, schaut die Response-Header an. --- # REST-APIs — wie Apps Daten austauschen --- # Was ist eine API? **Application Programming Interface.** Eine standardisierte Stelle, an der zwei Programme Daten austauschen. ``` HTTP-Request (GET /aktuell?ort=stuttgart) ┌─────────────────────────────────────────────────┐ │ ▼ [App auf dem Handy] [API-Server] ▲ │ │ JSON-Response │ └─────────────────────────────────────────────────┘ { "temperatur": 14, "regen": false, ... } ``` **Beispiele:** Wetter, Maps, Banking, Twitter, jede Spotify-Anfrage. --- # REST: GET · POST · PUT · DELETE | Methode | Was tut sie | URL-Beispiel | |---------|-------------|--------------| | **GET** | lesen | `GET /users/42` (User mit ID 42 abfragen) | | **POST** | neu erstellen | `POST /users` mit Daten als Body | | **PUT** | überschreiben | `PUT /users/42` mit kompletten neuen Daten | | **PATCH** | teilweise ändern | `PATCH /users/42` mit Änderungen | | **DELETE** | löschen | `DELETE /users/42` | CRUD = **C**reate · **R**ead · **U**pdate · **D**elete. --- # Selbstlernen — eine API im Browser anfragen JSONPlaceholder ist eine kostenlose Fake-API zum Üben: ``` https://jsonplaceholder.typicode.com/users https://jsonplaceholder.typicode.com/posts/1 https://jsonplaceholder.typicode.com/posts?userId=2 ``` **Aufgabe:** Im Browser öffnen. Was kommt zurück? Welcher Content-Type-Header? Bonus: mit `curl https://api.github.com/users/torvalds` in der Konsole. --- # JSON — das Standard-Datenformat ```json { "name": "Torvalds", "alter": 56, "projekte": [ { "name": "Linux", "stars": 180000 }, { "name": "Git", "stars": 50000 } ], "aktiv": true } ``` - **Objekte** (`{ ... }`), **Listen** (`[ ... ]`), **Strings** (`"..."`), **Zahlen**, `true`/`false`, `null` - Universell: jede Programmiersprache hat JSON-Support - Lesbar: Mensch + Maschine --- # Sub-Sektion B: Metadaten — was Dateien über sich verraten --- # EXIF — was ein Foto über sich verrät **Exchangeable Image File Format.** Standard seit 1995, in JPEG/HEIC/TIFF. Typische EXIF-Daten in einem Smartphone-Foto: | Feld | Beispiel | |------|----------| | Kamera-Hersteller | Apple | | Kamera-Modell | iPhone 15 Pro | | Linse, Brennweite | 24 mm, ƒ/1.78 | | Belichtung, ISO | 1/250 s, ISO 100 | | **Aufnahme-Zeitstempel** | 2026-04-12 18:47:12 +02:00 | | **GPS-Koordinaten** | 48.7847°N 9.1825°E (Stuttgart, Königstraße) | | Software-Version | iOS 18.4.1 | | Bearbeitungs-Spuren | Photoshop CC 2025 | --- # Der John-McAfee-GPS-Fall **Dezember 2012.** John McAfee (Antivirus-Erfinder) flieht aus Belize, wo er als Mordverdächtiger gesucht wird. **Vice Magazine** veröffentlicht ein Interview mit einem Foto: McAfee im T-Shirt, scheinbar in einer geheimen Location. **EXIF-Koordinaten im Foto:** `15.6541° N, 88.9939° W` → **Hotel Nana Lodge, Guatemala.** Bekannt. McAfee wird 36 Stunden später festgenommen. --- # Social-Media-EXIF-Stripping (Übersicht) | Plattform | Stripped EXIF? | Vorbehalte | |-----------|----------------|------------| | **Instagram** | Ja | (komplett entfernt + neu komprimiert) | | **Facebook** | Ja | | | **Twitter / X** | Ja | nur bei Foto-Upload, nicht bei Direktnachricht | | **WhatsApp** | Ja, *wenn als Foto* gesendet | NEIN bei "Dokument senden" | | **iMessage** | Ja | | | **E-Mail (Outlook, GMail)** | Nein | Original-Datei bleibt original | | **Slack / Discord** | Nein bzw. teilweise | Original-Datei bleibt original | **Faustregel:** Plattform-Upload = wahrscheinlich Stripped. Datei direkt teilen = unsicher. --- # ID3 — Metadaten in MP3-Dateien ``` ID3v2.4 Header: Titel: "Hotel California" Artist: "Eagles" Album: "Hotel California" Jahr: 1976 Genre: Rock Cover-Art: [JPEG embedded, 250 × 250 px] ``` Plus: Lyrics, Komponist, Track-Nr, ReplayGain, manchmal **ganze Lyric-Videos als Embedded-Bilder.** → Daher ist eine 4-Min MP3 manchmal **5 MB groß** statt 3 MB. --- # Der Tony-Blair-Fall (PDF-Metadaten) **Februar 2003.** Britische Regierung veröffentlicht PDF-Dokument zur Begründung des Irakkriegs. Ein britischer Akademiker findet im **PDF-Revisionsverlauf**: das Dokument wurde aus einer studentischen Doktorarbeit von 1991 kopiert. **Plagiats-Skandal.** Plus Hinweise auf welche Mitarbeiter:innen welche Sätze überarbeitet hatten. → **PDF-Metadaten** verraten oft mehr als der Inhalt. --- # Vendor-Lockin — wenn das Format zum Käfig wird --- # Beispiele: proprietäre Formate | Format | Hersteller | Was nervt | |--------|-----------|-----------| | **PSD** (Photoshop) | Adobe | nur Photoshop liest Layer-Daten voll. Abo-Pflicht. | | **INDD** (InDesign) | Adobe | gleiches Problem | | **.pages** | Apple | nur in Apple-Apps voll editierbar | | **.numbers** | Apple | gleiches | | **DOC** (alt) | Microsoft | bis 2007 closed-source | | **PSP, AI** | Adobe | proprietäre Editor-Formate | → **Offene Alternativen:** PNG, TIFF, ODT (LibreOffice), HTML/Markdown, SVG. --- # Vendor-Lockin als Risiko **Szenario:** Du arbeitest 5 Jahre lang mit Adobe InDesign. Dann steigt der Abo-Preis um 200 % oder Adobe ändert das Format. **Konsequenz:** - Bestehende INDD-Dateien öffnen sich noch — aber nur in Adobe-Produkten - Migration zu Affinity Publisher / Scribus: Daten müssen konvertiert werden, manche Details gehen verloren - Bei einigen Formaten gibt es keine Konverter — Vendor entscheidet komplett **Schutz:** Wichtige Daten in **offenen Formaten** parallel speichern. --- # Selbstlernen — exiftool auf eigene Fotos **Installation:** - macOS: `brew install exiftool` - Linux: `sudo apt install libimage-exiftool-perl` - Windows: [exiftool.org](https://exiftool.org) **Aufgabe:** ```sh exiftool DEIN_FOTO.jpg ``` Schaut, was alles drin steht. **Findet ihr GPS-Koordinaten?** Bonus: in [maps.google.com](https://maps.google.com) eintippen. **Optional:** EXIF entfernen mit `exiftool -all= DEIN_FOTO.jpg`. --- # Zusammenfassung **Distribution — wie reist die Datei:** CDN bringt sie zur Edge. REST-API liefert Daten on-demand. JSON ist die Sprache. **Metadaten — was bringt die Datei mit:** EXIF (Fotos), ID3 (Audio), PDF-Meta (Dokumente). GPS + Zeitstempel + Software. **Privacy:** EXIF kann Aufenthaltsort verraten. PDF kann Revision-History verraten. **Vendor-Lockin:** proprietäre Formate als Käfig. Offene Alternativen wo möglich. → Eine Datei ist nie nur Inhalt. **Inhalt + Gepäck + Weg.**