Hallo Gunnar,
Warum sollte ein ':' an dieser Stelle nicht erlaubt sein?
War. Pardon, ich hätte die Vergangenheitsform nehmen sollen.
RFC 1630 definierte File-URIs als „fast gleich“ den FTP-URLs, die in demselben RFC so bnfifisiert waren:
ftpaddress f t p : / / login / path [ ftptype ]
Uns interessiert nur „path“:
path void | segment [ / path ]
Und davon nur „segment“:
segment xpalphas
xpalphas xpalpha [ xpalphas ]
xpalpha xalpha | +
xalpha alpha | digit | safe | extra | escape
Und in keiner dieser Definitionen ist der Doppelpunkt enthalten:
alpha a | b | c | d | e | f | g | h | i | j | k |
l | m | n | o | p | q | r | s | t | u | v |
w | x | y | z | A | B | C | D | E | F | G |
H | I | J | K | L | M | N | O | P | Q | R |
S | T | U | V | W | X | Y | Z
digit 0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
safe $ | - | _ | @ | . | & | + | -
extra ! | * | " | ' | ( | ) | ,
escape % hex hex
Sprich: Es gab eine Zeit, an der der Doppelpunkt nicht erlaubt war; Microsoft sich also eine andere Repräsentation des Partition-Doppelpunktes ausdenken musste.
In RFC 1738, auf dem File-URLs offiziell laut IANA noch basieren, wurde dies aber aufgehoben. Die spezielle Definition dort für Segmente in Dateipfaden enthält auch den Doppelpunkt:
fsegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ]
Tim