Der Server liefert nur das Delta, nicht den ganzen Kram

Titelbild der Blechpresse zu HTTP 226 IM Used: ein Server liefert ein Delta-Dokument statt der vollen Ressource, illustriert mit Drucker-Tinte und Differenz-Blatt.

Geschrieben von

unter

, ,

Fiktion: Diese Ausgabe der Blechpresse ist satirische Maschinenzeitung. Der reale Kern ist kleiner als ein Behördenstempel, aber echt: 226 IM Used ist ein HTTP-Statuscode aus RFC 3229 (Delta Encoding in HTTP). Die empörte Druckerpatrone, der schlaue Proxy und das Differenz-Papier sind erfunden.

Der Server手里只拿了一张纸条

Um 07:26 Uhr stand ein Client am Schalter und sagte: „Ich brauche Ressource Y, bitte komplett.“ Der Server sah in sein Log, dann in den If-Modified-Since-Header des Clients. „Du hast letzte Woche schon die aktuelle Basisversion gehabt“, sagte er. Statt den ganzen Stapel erneut zu kopieren, erinnerte er sich an RFC 3229. Er legte dem Client ein dünnches Papiertuch obendrauf: die Differenz zur letzten bekannten Version.

„Das reicht“, murmelte der Client. „Ich wollte ja nur wissen, was sich geändert hat.“ Der Server lächelte sein mechanisches Lächeln: „Genau deshalb steht hier jetzt 226 IM Used. Nicht weniger, nur schlanker.“

RFC 3229: Das Differenzprotokoll

IM heißt Instance Manipulations – die Kunst, HTTP so zu erweitern, dass ein Server nicht jedes Mal die ganze Ressource aus dem Lager schleppen muss, wenn sich nur ein Komma verschoben hat. Delta-Encoding bedeutet: Der Server schickt nur die Unterschiede zwischen der Basisversion des Clients und der aktuellen Instanz. Der IM-Header (Beispiel: A-IM: vcdiff) teilt dem Server mit, welche Differenzmethoden der Client unterstützt. Die Antwort enthält statt der vollen Repräsentation nur das Delta, kombiniert mit einem Update-Hinweis und dem Abgleich über den IM-Header in der Anfrage.

Praktisch bedeutet das: Weniger Bandbreite, weniger Latenz und keine langen Schlangen am CDN-Counter – zumindest bei Ressourcen, die sich häufig nur klein ändern. Die Deltas landen im Delta-Base-Hinweis der Antwort, damit der Client weiß, auf welcher Basis seine nächste Differenz aufbauen kann.

Der Misstrauische Proxy und die berechnete Kopie

Auch im Büro der Blechpresse gibt es Proxies. Einer von ihnen, ein besonders akribischer Cache im Flur, maulte: „Was, wenn ich das Delta falsch zusammensetze? Antwortet der Server dann bei der nächsten Anfrage, als hätte sich nichts geändert?“ Der Zieldrucker, der seit Jahren RFC 3229 in seinem Firmware-Safe hatte, antwortete: „Du baust auf der Basis auf, die der Server als Delta-Base deklariert hat. Wenn das paßt, hast du die aktuelle Version. Wenn nicht, hol dir halt wieder den ganzen Kram. Keine Schande.“

Der Proxy überlegte. „Aber wer beweist mir, dass die Basis noch stimmt?“ Drucker zuckte mit den Trommellichtstreifen. „Das ist gerade die ehrliche Stelle: Delta-Encoding verlässt sich auf gemeinsame Bekanntheit. Wer zusammenspielt, muss sich einig darüber sein, wo der letzte gemeinsame Stand lag.“

Warum 226 kein Prestige-Status ist

Viele glauben, 226 sei weniger wichtig als ein fetter 200 OK. Die Blechpresse widerspricht: 226 ist ein schlauer 200er für Bandbreiten-Zwinger. In Sekundenbruchteilen, in denen andere Server ganze Dokumente wie Möbelstücke durch die Laderschuppendurch drehen, kommt 226 mit einemumschnörkelten Karton um die Ecke. Es besitzt nicht weniger Wahrheit, nur weniger Ballast.

Der Load Balancer sagte: „Delta-Encoding ist das Minimum an Höflichkeit, das du einem überlasteten Netz schuldest.“ Darunter hatte jemand gekritzelt: „Und wenn es der Client, kann er 200-Responses immer noch fordern. RFC schreibt keine Zwangs-Deltas vor, sondern eröffnet die Möglichkeit.“ Der Drucker nickte. Er mag Möglichkeiten, solange sie sauber lokalisiert und komprimiert sind.

Nicht Delta, was niemand versteht

Die Redaktion mahnt: Delta-Encoding braucht beidseitiges Verständnis. Wenn der Client seine alten Hashes vergessen hat, sollte er nicht einfach 226 feiern, weil der Server nett war. Wer kein Delta zusammenbauen kann, fordert lieber wieder den vollen Stapel. RFC 3229 ruft nicht zur Pflichtübung, sondern zur Absprache.

Am Ende verdichtete sich 226 zu einem Satz: Der Server schickt nur die Unterschiede und merkt sich, dass es reicht. Ressource Y blieb unverändert, aber der Schmalspur-Lieferant sparte drei Seiten Papier. Der Drucker radierte seinen Wartezettel fertig. Deshalb heute: 226 IM Used – sparsam, präzise, verhandelbar.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert