- From: Roy T. Fielding <fielding@avron.ICS.UCI.EDU>
- Date: Fri, 03 Feb 1995 23:38:14 -0800
- To: Ed Levinson <elevinso@Accurate.COM>
- Cc: uri@bunyip.com
In draft-levinson-cid-00.txt, Ed writes:
> Abstract
>
> The Uniform Resource Locator (URL) scheme, "cid", allows
> compound or aggregate objects in a multipart mail message to
> refer to one another by their body part labels.
It should also allow objects external to the multipart mail message to
refer to body-parts of that multipart mail message. In general, I think
it would be better to use the MIME terms of "entity", "body", and "body-part"
to refer to things inside a multipart message, instead of "object".
I encountered this with the HTTP spec.
> ...
> A cid URL takes the form
>
> cidurl = "cid" ":" cid-spec
>
> where cid-spec is a restricted form of "addr-spec" as
> defined in [RFC822]. The purpose of the restriction is to
> eliminate special characters from the cid URL. Such
> characters can be problematical in many environments (e.g.,
> HTML and SGML) in which the cid URL may be used. Cid URLs
> are a subset of MIME content-IDs and RFC822 message-IDs
I think this is backwards --> cid URLs should be capable of referencing
any possible Content-ID. Any characters that are not allowed in a URL can
be escaped using the %hex encoding method.
Thus, the correct BNF would be
----------------------------------------------------------------------
cidurl = "cid" ":" cid-spec
cid-spec = local-part "@" domain ; globally unique
local-part = word *("." word)
word = atom | quoted-string
atom = 1*<any okCHAR except specials, SPACE and CTLs>
quoted-string = "%22" *(qtext|quoted-pair) "%22"
qtext = <any okCHAR excepting "%22",
"%5C" & CR, and including
linear-white-space>
quoted-pair = "%5C" okCHAR
domain = sub-domain *("." sub-domain)
sub-domain = domain-ref | domain-literal
domain-ref = atom
domain-literal = "[" *(dtext | quoted-pair) "]"
dtext = <any okCHAR excluding "%5B", ; => may be folded
"%5D", "%5C" & "%0D", & including
linear-white-space>
specials = "(" | ")" | "%3C" | "%3E" | "%40" ; Must be in quoted-
| "," | ";" | ":" | "%5C" | "%22" ; string, to use
| "." | "%5B" | "%5D" ; within a word.
linear-white-space = 1*([CRLF] LWSP-char) ; semantics = SPACE
; CRLF => folding
CRLF = CR LF
LWSP-char = SPACE / HTAB ; semantics = SPACE
SPACE = "%20"
HTAB = "%09"
LF = "%0A"
CR = "%0D"
CTL = <any hex-escaped ASCII control ; %00 - %1F
character and DEL> ; %7F
okCHAR = uchar | ";" | "/" | "?" | ":" | "&" | "="
uchar = <as defined in RFC 1738>
----------------------------------------------------------------------
BUT, I think we could more easily live with just the superset:
----------------------------------------------------------------------
cidurl = "cid" ":" cid-spec
cid-spec = local-part "@" domain ; globally unique
local-part = 1*cidchar
domain = 1*cidchar
cidchar = uchar | ";" | "/" | "?" | ":" | "&" | "="
uchar = <as defined in RFC 1738>
----------------------------------------------------------------------
> ...
> 3. Security
>
> Security issues are not addressed in this memorandum.
It would be more accurate to say that there are no security issues, since
this section is meant to "address" the security issues.
......Roy Fielding ICS Grad Student, University of California, Irvine USA
<fielding@ics.uci.edu>
<URL:http://www.ics.uci.edu/dir/grad/Software/fielding>
Received on Saturday, 4 February 1995 02:40:23 UTC