One major syntax issue does arise, however, in all of these proposals.
Embedding
URLs in message header fields brings up some intersting issues in regards to
line folding. (HTTP may not be concerned with this, but email applications
definitely are.) URLs can be quite long, and mailers have to be able to
fold
them. This is especially true if the URL is just one parameter value,
potentially one of many in a very long field.
I tried to solve this in HTTP by using "<" and ">" to delimit the URL,
and requiring that any linear whitespace between the angle brackets
be discarded by the parser. That seemed to be a reasonable interpretation
of RFC 822's "machine-usable reference", and matched the recommendations
for delimiters in text from RFC 1738, but had a nasty interaction with HTML.
I'm not sure why you wanted to match this up with the syntax for existing
"machine-usable reference" fields. In practice practically everything in RFC822
has to be read and processed by mail agents these days.
This issue came up in the URL access type proposal, and I "solved" it as
follows:
Syntax and Use of the URL parameter
Using the ANBF notations and definitions of RFC 822 and RFC 1521, the
syntax of the URL parameter Is as follows:
URL-parameter := <"> URL-word *(*LWSP-char URL-word) <">
URL-word := token
; Must not exceed 40 characters in length
That's a bit harsh -- besides, many charcaters not allowed in tokens
are used in URLs (e.g, ":" and "/").
":" and "/" aren't problems problem since the whole thing is a quoted parameter
value. This is always the case since I believe that any valid URL contains
tspecials. There are, however, two problem characters, specifically '"' and
"\", and the specification calls for them to be encoded using the % notation
URLs are supposed to support per RFC1738.
I am currently using "URL", with the statement that linear whitespace
between the double-quotes must be ignored.
Sounds pretty close to what I specified, actually. The only major difference is
that you didn't specify where the spaces have to be put and I did.
Ned