[
Lists Home |
Date Index |
Thread Index
]
>Hah! We've got people looking at that same RFC and saying colons are
>reserved!
Oh yes, they're reserved all right:
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
But "reserved" doesn't mean what you might guess:
The "reserved" syntax class above refers to those characters that are
allowed within a URI, but which may not be allowed within a
particular component of the generic URI syntax; they are used as
delimiters of the components described in Section 3.
And in the path part of the URI, they don't have any syntactic meaning
so they're allowed:
abs_path = "/" path_segments
[...]
path = [ abs_path | opaque_part ]
path_segments = segment *( "/" segment )
segment = *pchar *( ";" param )
param = *pchar
pchar = unreserved | escaped |
":" | "@" | "&" | "=" | "+" | "$" | ","
On the other hand, you'll see that the production for rel_path makes
the first segment special; you can't use
C:/foo
as a relative URI, because it would be confused with a scheme called "C".
So you might want to escape colons when generating relative URIs.
-- Richard
|