RFC 1123 · · Internet Standard
Der RFC, der Hostnamen mit führender Ziffer erlaubte.
Der offizielle Titel lautet "Requirements for Internet Hosts, Application and Support." Was er wirklich ist: ein Korrekturblatt für E-Mail, DNS, FTP und Telnet, geschrieben 1989. Er ist außerdem, ganz nebenbei, der Grund, warum 3com.com ein gültiger Hostname ist und warum deine HTTP-Header eine vierstellige Jahreszahl tragen.
- Status
- ✓ Weiterhin gültig
- Auch bekannt als
- STD 3
Geschrieben von Noel Lang · IT-Trainer
Kurzfassung
RFC 1123 sagt einem Internet-Host, was er auf der Anwendungsschicht tun muss: Telnet, FTP, SMTP und DNS. Er definiert kein Protokoll. Er korrigiert die bestehenden, nachdem er sie zehn Jahre lang auf echte Netze treffen sah. Er ist die Hälfte von STD 3 (die andere ist
RFC 1122
), er machte Hostnamen mit führender Ziffer gültig, und seine Änderung an der Datumssyntax von
RFC 822
ist der Grund, warum HTTP sein Datumsformat bis heute rfc1123-date nennt.
Das Problem, das er löst
1989 waren die Anwendungsprotokolle des Internets rund ein Jahrzehnt alt und unabhängig voneinander implementiert worden, von Leuten, die aus Dokumenten arbeiteten, die bei der Syntax präzise und beim Verhalten still waren. Was soll ein Mailserver mit einer Nachricht tun, deren Datum eine zweistellige Jahreszahl trägt? Muss ein Resolver der ersten Antwort glauben, die er bekommt? Ist ein Hostname, der mit 3 beginnt, gültig oder nicht?
Jeder hatte eine Antwort. Die Antworten begegneten einander erst, wenn zwei Implementierungen es taten. Die Protokolle funktionierten, die Annahmen um sie herum nicht.
RFC 1123 und sein Zwilling RFC 1122 sind die Erwiderung, am selben Tag vom selben Herausgeber veröffentlicht. Zusammen gehen sie jede Schicht des Stapels durch und schreiben zu jeder Mehrdeutigkeit eine Regel mit exakter Verbindlichkeit: Das musst du tun, das solltest du, das darfst du. RFC 1122 nimmt alles unterhalb der Anwendung. RFC 1123 nimmt alles darüber. Zusammen sind sie STD 3, und ein Host, der behauptet, ein Internet-Host zu sein, behauptet, ihnen zu gehorchen.
Das Regelbuch, nicht die Regeln
Denk an eine Sportart, die aufwuchs, bevor jemand die Regeln aufschrieb. Die Regeln existieren: Alle wissen ungefähr, wie das Spiel geht, weil sie es beim Spielen gelernt haben. Dann wird die Sportart groß genug, dass zwei Vereine aus verschiedenen Städten aufeinandertreffen, und es stellt sich heraus, dass der eine immer erlaubt hat, was der andere immer verboten hat.
Was du dann schreibst, ist kein neues Regelwerk. Es ist ein Regelbuch: eine amtliche Entscheidung zu jedem Streit, den das Spiel tatsächlich hatte. Die meisten Einträge sind langweilig. Jeder existiert, weil irgendwo, irgendwann, ein Spiel verdorben wurde.
RFC 1123 ist dieses Regelbuch für die Anwendungsschicht, und seine meistzitierten Einträge sind die kleinsten. Zwei davon prägten Dinge, die du täglich berührst.
STD 3 sind zwei Dokumente, geteilt nach Schicht
Eine Standardnummer benennt eine Anforderung, kein Dokument. STD 3 ist das Paar: RFC 1122 deckt die Kommunikationsschichten ab, RFC 1123 die Anwendungen, die darauf sitzen.
Die Ziffer und das Jahr
Abschnitt 2.1 ändert ein Zeichen einer Regel. RFC 952 hatte gesagt, ein Hostname müsse mit einem Buchstaben beginnen. RFC 1123 lockert das: ein Buchstabe oder eine Ziffer. Der Grund war banal und kommerziell. Firmen hießen 3Com und 3M und wollten Domains, die wie ihre Namen aussahen. Jeder Hostname im gesamten Internet, der mit einer Zahl beginnt, ruht auf diesem Satz. Die alte Regel spukt bis heute in Validierungs-Regexen, geschrieben von Leuten, die sie lernten und nie erfuhren, dass sie sich geändert hat.
Abschnitt 5.2.14 tut Ähnliches mit der Zeit.
RFC 822
hatte in der Date-Kopfzeile einer E-Mail eine zweistellige Jahreszahl erlaubt, was 1982 in Ordnung war und mit näher rückendem Jahr 2000 weniger gut aussah. RFC 1123 verlangt vier Stellen. Jahre später brauchte HTTP ein Datumsformat für seine Kopfzeilen, schaute, was E-Mail tat, und übernahm genau diese Gestalt. Es nannte die Grammatikregel rfc1123-date, und der Name blieb hängen. Wenn die Standardbibliothek deiner Sprache dir ein “RFC-1123-Datum” anbietet, ehrt sie still eine Fußnote von 1989 über E-Mail, in einem Protokoll, das jenes Dokument nie erwähnt.
Beide Änderungen sind einen Satz lang. Beide sind von der Sorte, die man nur einmal beheben darf, bevor zu viel von der Welt von der alten Antwort abhängt.
Was der RFC wirklich sagt
Protokoll für Protokoll aufgebaut. Niemand liest ihn von vorn bis hinten; man schlägt die Klausel nach, über die man gerade streitet:
| Abschnitt | In einfachen Worten |
|---|---|
| 2 · Allgemeine Fragen | Der berühmte Teil. Abschnitt 2.1 lockert die Hostname-Regel, sodass das erste Zeichen eine Ziffer sein darf, und warnt Implementierer davor anzunehmen, ein Name sei keine Adresse. |
| 3 · Telnet | Wie Telnet-Client und -Server Optionen aushandeln müssen, ohne sich gegenseitig zu blockieren. Ein erstaunlicher Teil des Abschnitts handelt davon, nicht unhöflich zu sein. |
| 4 · Dateiübertragung | FTP und TFTP. Vor allem Übertragungsmodi, und die Tatsache, dass ein Server im Passiv-Modus tatsächlich dort lauschen muss, wo er es angekündigt hat. |
| 5 · Elektronische Post | SMTP und das RFC-822-Nachrichtenformat. Enthält die Datumsänderung: bitte vierstelliges Jahr, und sei großzügig beim Parsen. |
| 6 · Unterstützende Dienste | DNS, und wie ein Resolver sich verhalten muss: der Verweisung folgen, die TTL respektieren und nie annehmen, ein Name habe genau eine Adresse. |
Was oft falsch verstanden wird
-
"Ein Hostname darf nicht mit einer Zahl beginnen."
Durfte er nicht, bis 1989.
verlangte einen Buchstaben als erstes Zeichen, was gut ging, bis Firmen namens 3Com eine Domain wollten. Abschnitt 2.1 von RFC 1123 lockerte die Regel in einem einzigen Satz, und das ganze moderne Web aus 3com.com und 1password.com ruht darauf. Die alte Regel überlebt in der Folklore und in gelegentlich übereifrigen Validierungs-Regexen. -
"RFC 1123 definiert das Datumsformat von HTTP."
Er definiert eine Änderung, kein Format. Die Gestalt stammt von
: Tag, Monat, Jahr, Uhrzeit, Zone. Was RFC 1123 hinzufügte, war die Forderung nach einer vier- statt zweistelligen Jahreszahl. HTTP übernahm dann genau diese Gestalt und nannte die Grammatikregel rfc1123-date, weshalb das Etikett an dem Dokument klebt, das das Jahr reparierte, und nicht an dem, das die Anordnung erfand. -
"RFC 1123 definiert SMTP und DNS."
Er definiert keines von beiden. Er ist ein Anforderungsdokument: Er geht Protokolle durch, die es bereits gab, und sagt, was ein Host in der Praxis mit ihnen tun muss. Wo er und eine moderne Spezifikation uneins sind, gewinnt die moderne. Seine SMTP-Klauseln aktualisierte später
, seine DNS-Klauseln RFC 2181. Das Dokument bleibt Standard für alles, was niemand überarbeitet hat. -
"STD 3 muss doch längst obsolet sein."
Er ist nach über fünfunddreißig Jahren weiterhin Internet Standard und wurde nie abgelöst. Einzelne Klauseln sind überholt, was etwas anderes ist: Das Dokument behält seinen Status, während die gealterten Teile namentlich ersetzt werden. So handhabt die RFC-Reihe ein Dokument, das zu grundlegend ist, um es zurückzuziehen, und zu alt, um noch ganz zu stimmen.
Wo dir RFC 1123 begegnet
Fast nie beim Namen, ständig in seinen Folgen. Ein Feldführer:
| Du siehst | Was es bedeutet |
|---|---|
Date: Sun, 06 Nov 1994 08:49:37 GMT |
Eine HTTP-Kopfzeile in dem, was die HTTP-Spezifikationen wörtlich rfc1123-date nennen. Die vierstellige Jahreszahl geht auf dieses Dokument zurück. |
Der Formatbezeichner "R" in .NET |
Dokumentiert als das RFC-1123-Muster. Java, Go und Python führen Entsprechungen unter demselben Namen. |
3com.com, 1password.com |
Hostnamen mit führender Ziffer, gültig nur, weil Abschnitt 2.1 die Regel von RFC 952 lockerte. |
| "Muss STD 3 erfüllen" in einem Datenblatt | Die Behauptung, sowohl RFC 1122 als auch RFC 1123 zu folgen. Ob das jemand getestet hat, ist eine andere Frage. |
| Ein Resolver, der die TTL respektiert | Abschnitt 6 verlangte es. Jahrzehnte von Caches haben meist gehorcht, und über die, die es nicht taten, erzählt man sich bis heute Geschichten. |
Fragen, die wirklich gestellt werden
Was ist RFC 1123? +
RFC 1123 ist ein Anforderungsdokument von 1989, das festlegt, was ein Internet-Host auf der Anwendungsschicht tun muss, sollte und darf: Telnet, FTP, SMTP und DNS. Er definiert kein eigenes Protokoll, sondern korrigiert und präzisiert die bestehenden nach einem Jahrzehnt Implementierungserfahrung. Zusammen mit RFC 1122 bildet er STD 3, und beide sind bis heute Internet Standard.
Wie sieht das RFC-1123-Datumsformat aus? +
Es ist das Format aus Wochentag, Tag, dreibuchstabigem Monat, vierstelligem Jahr, Uhrzeit und Zone, etwa Sun, 06 Nov 1994 08:49:37 GMT. RFC 1123 hat es nicht erfunden: Er änderte die Datumssyntax von RFC 822 dahingehend, dass das Jahr vierstellig sein muss. HTTP übernahm später genau diese Gestalt und nannte sie rfc1123-date, weshalb Bibliotheken wie der "R"-Formatbezeichner von .NET bis heute nach RFC 1123 benannt sind.
Darf ein Hostname mit einer Ziffer beginnen? +
Ja, und RFC 1123 ist der Grund. RFC 952 hatte verlangt, dass das erste Zeichen eines Hostnamens ein Buchstabe ist. Abschnitt 2.1 von RFC 1123 lockerte diese Regel auf Buchstabe oder Ziffer, weil echte Firmen 3Com hießen und passende Domains wollten. Jeder Hostname, der mit einer Ziffer beginnt, von 3com.com an, verdankt sich einem einzigen Satz aus dem Jahr 1989.
Was ist der Unterschied zwischen RFC 1122 und RFC 1123? +
Es sind zwei Hälften eines Dokuments, am selben Tag vom selben Herausgeber veröffentlicht, und zusammen sind sie STD 3. RFC 1122 deckt die Kommunikationsschichten ab: Sicherungsschicht, IP, ICMP, UDP und TCP. RFC 1123 deckt die Anwendungsschicht ab: Telnet, FTP, SMTP und DNS. Keiner ergibt ohne den anderen Sinn.
Ist RFC 1123 noch aktuell? +
Ja. Er ist Internet Standard und wurde nie abgelöst, auch wenn einzelne Klauseln überholt sind. Seine SMTP-Regeln etwa wurden von RFC 5321 aktualisiert, seine DNS-Regeln von RFC 2181. Das Dokument gilt weiterhin als Hälfte von STD 3; wenn eine Spezifikation verlangt, ein Host müsse STD 3 folgen, ist dies gemeint, was die Anwendungsschicht betrifft.
Verweise hierher
Andere Erklärseiten auf dieser Website, die auf diesen RFC zurückverweisen:
Wie RFC 1123 zusammenhängt
Was vorher kam
-
RFC 822 (1982) definierte die E-Mail-Nachricht. RFC 1123 ging zurück und verlangte eine vierstellige Jahreszahl in ihrer Date-Kopfzeile, jene kleine Änderung, die HTTP später übernahm und nach diesem Dokument benannte.
-
RFC 952 (1985) verlangte, dass ein Hostname mit einem Buchstaben beginnt. Abschnitt 2.1 von RFC 1123 erlaubte auch eine Ziffer, und jedes 3-irgendwas.com seither hängt daran.
Teil eines geführten Clusters: Die Netzwerk-Grundlagen, erklärt