- From: Al Gilman <asg@severn.wash.inmet.com>
- Date: Fri, 24 Nov 1995 17:06:04 -0500 (EST)
- To: Harald.T.Alvestrand@uninett.no
- Cc: connolly@beach.w3.org, asg@severn.wash.inmet.com, moore@cs.utk.edu, ietf-types@uninett.no, uri@bunyip.com
To follow up on what Harald.T.Alvestrand@uninett.no said ...
Headers inside URLs???????????????????????
Ron, where are your URCs when I need them????????
Harald,
Yes, I absolutely want to be able to touch RFC 822 header fields
from within URIs. This is part of the implementation of a larger
goal. The approach to this goal, including the URI syntax for
header fields, is a coordinated package of reforms in URI and
header usage to create a more integrated web across the Internet
transport modes.
MISSION GOAL:
The top-level capability sought is that resources identified with
FTP, Gopher, and HTTP transport, and those identified with SMTP
and NNTP transport, should be able to cite one another freely
without regard to the native transport mode of the resource
cited.
STRATEGY:
A bundle of low-impact upgrades to present URI and header usage
will accomplish this if we achieve the following:
standard syntax for citing all manner of URIs in 822 headers
such as "In-reply-to:" and "References:"
standard syntax for citing mail and News objects which have
message-ID and Content-ID values in contexts where an
URL might otherwise go.
To web together the Internet corpus of resources, we need not one
but _two_ coordinated, interoperating syntactic forms.
OBJECTIVES:
The following specific capabilities are sought in near-term
pursuit of the above mission goal.
mailto: URLs able to nominate but not dictate header values
for resulting RFC 822 message
mid: Citations in HTML and MIME headers able to quote existing
resource header values for retrieval assistance
common syntax for header-in-URI embedding for the above two.
In-reply-to, References, etc. headers refined, not extended.
is: *( msg_id | phrase )
to_be: *( msg_id | cite | subject-phrase)
; where "cite" is the URI-embedding syntax
--*** POSSIBLE DETAILS ***-----------------------------------
While the syntax here has received some thought, it is not perfect
and is primarily offered as a vehicle to get to examples of what
we need to be able to do. Alternate syntax with the same capability
would be fine. But some semantic definitions are required first
to clarify the strategy.
DEFINITIONS:
Citations:
The existing usage
href="URL"
in HTML text is a resource citation.
The existing usage
In-reply-to: <addr-spec>
in an RFC 822 header is a resource citiation.
The existing usage
Location: "URL"
in HTTP is a resource citation.
Resource citations are not comparable with resource locations.
Citations are _uses_ of resource identifiers; some of
these identifiers use identification-by-location i.e. URLs.
Uniform Resource Identifiers (URIs):
A class of text expressions which includes URLs as defined
in RFC 17xx, that are:
used in resource citations (see above);
syntactically distinguishable one from another.
The _definition_ of what is or is not a URI is not based on the
list of subtypes it currently admits. That list presently only
contains URL schemes. We are about to add a "mid:" scheme and
possibly a "cid:" scheme to this unified syntax for uniform use.
But it doesn't matter whether we care to call this new form a
URI, URN, or URC. The question that determines "Is this an URI
or not" is the second-listed property above: that we can tell
them from URLs and from each other. This _rule_ defines the URI
_class_ and not some list of recognized conforming subtypes.
This is the intent of RFC 1630.
URI FORMS:
mid scheme:
msg-id = "<" addr-spec ">" ; per RFC 822
mid_URI = "mid:" msg-cite *( "/" msg-cite )
"?" content-cite
*( ";" header-equation)
msg-cite = addr-spec ; as used in News: URL
content-cite = msg-cite ; internally similar
header-equation = field-name "=" field-body
field-name, field-body ; per RFC 822
Notes:
a citation of a Content-ID value is contextually
distinguishable from a citation of a Message-ID value
because the content-cite always comes after the
"?" punctuation mark, and a msg-cite never does.
mailto scheme:
mailto-URI = "mailto:" mailbox ; as now
*( ";" header-equation ) ; growth
*( "/" body-line ) ; growth
mailbox = addr-spec ; per RFC 822
Examples:
simple reference to a NewsPost:
mid:199511241230.HAA18030@list.cren.net
more complicated reference to the same NewsPost:
mid:199511241230.HAA18030@list.cren.net;subject="What%20a%20body%20part%20is";Newsgroups=info.ietf.smtp
simple reference to a MIME part without specifying enclosing
message:
mid:?AA42R2HY45J4UOI@dale.uninett.no
Reference to a widely available FAQ:
mid:internet-services%2Faccess-via-email_814453424@rtfm.mit.edu;
newsgroups="alt.internet.services,alt.online-service,
alt.bbs.internet,alt.answers,comp.mail.misc,comp.answers,
news.newusers.questions,news.answers";
Location="ftp://rtfm.mit.edu/pub/usenet
/internet-services/access-via-email,
mailto:listserv@ubvm.cc.buffalo.edu/"GET%20INTERNET%20
BY-EMAIL%20NETTRAIN%20F=MAIL"
simple mail opportunity:
<a href="mailto:Harald.T.Alvestrand@uninett.no">
more complicated mail opportunity:
<a href="mailto:Harald.T.Alvestrand@uninett.no;subject=Re:%20What%20a%20body%20part%20is;references=%22mid:9511201444.aa22175@paris.ics.uci.edu%3Bfrom=Roy.T.Fielding%22">
HEADER FORMS:
field = field-name ":" [ field-body ] CRLF ; per RFC 822
field-name = [field-class-modifier "-"] field-class-name
; new refinement
Examples:
"ID" is_a field-class-name
"Message" is a field-class-modifier
"Content" is a field-class-modifier
"Message-ID" is a field-name
"Content-ID" is a field-name
Note: the syntax for arguments belongs to the root "ID:" class
"From:" is a field-class-name
"Resent" is a field-class-modifier
"Resent-From:" is a field-name
citation-superclass
= ID-field | References-field | Referrer-field
| In-reply-to-field | ... ; extendable
For fields in the citation superclass, the contents are
limited to citation field values as follows:
citation-field-value
= *( (msg-id | cite | subject-phrase) LWSP)
msg-id ; per RFC 822 as is
cite = [URI-class ":"] URI ; can elide "URL:" prefix
subject-phrase = phrase ; per RFC 822 syntax
; bears connotation that match to
; subject field content takes
; precedence over other matches
URI-class = "URI" | "URL" | "URN" | ... ; extendable
; case-insensitive
URI = URL | mid-URI | ... ; extendable
Note that the "References:" header in RFC 822 is _not_ restricted to
msg-id codes at present, and in fact for mail coming out of a VMS
environment, tools such as Hypermail do recongnize subject threading
as well as msg-id threading. So the change on the 822 side is miniscule.
The URI vocabulary is known to need a "mid:" scheme.
Changes like these will complete a real Uniform Resource Identification
practice that will further energize the Internet.
Al Gilman
Received on Friday, 24 November 1995 17:07:51 UTC