MIMESGML Working Group                                       E. Levinson
Internet Draft: CID and MID URLs                          5 January 1997
<draft-ietf-mhtml-cid-03.txt>

          Content-ID and Message-ID Uniform Resource Locators

This draft document is being circulated for comment.  Please send your
comments to the authors or to the mhtml mail list
<mhtml@segate.sunet.se>.  If consensus is reached, this Access Type may
be registered with IANA and this document may be submitted to the RFC
editor as an Informational protocol specification.

Status of this Memo

This document is an Internet Draft; Internet Drafts are working
documents of the Internet Engineering Task Force (IETF) its Areas, and
Working Groups.  Note that other groups may also distribute working
documents as Internet Drafts.

Internet Drafts are draft documents valid for a maximum of six months.
They may be updated, replaced, or obsoleted by other documents at any
time.  It is not appropriate to use Internet Drafts as reference
material or to cite them other than as a "working draft" or  "work in
progress".

Please check the abstract listing in each Internet Draft directory for
the current status of this or any other Internet Draft.

Abstract

The Uniform Resource Locator (URL) schemes, "cid:" and "mid:" allow
references to messages and the body parts of messages.  For example,
within a single multipart message, one HTML body part might include
embedded references to other parts of the same message.

Changes from previous draft (02)

Completed the paragraph "In limited circumstances ... body parts that
have the same Content-ID. ... will".  This paragraph ended with an
incomplete sentence.  The missing phrase was a **requirement** for the
method of choosing one of the body parts from a multipart/alternative
MIME entity - use the rules for multipart/alternative.  Similar language
was in draft 01.

MUST and MAY replaced by "is required to" and "can choose to, but are
not required to," respectively.

Deleted the paragraph "A msgmid (cidurl) ...  can be converted to a



Levinson                    Expires July 1997                   [Page 1]


Internet Draft                                Message- & Content-ID URLs


message-id, content-id pair."  The deleted paragraph duplicated the
preceding one, "A 'cid' URL is converted ...  in a similar fashion." and
used terminology that had been superseded.

1. Introduction

The use of [MIME] within email to convey Web pages and their associated
images requires a URL scheme to permit the HTML to refer to the images
or other data included in the message.  The Content-ID Uniform Resource
Locator, "cid:", serves that purpose.

Similarly Net News readers use Message-IDs to link related messages
together.  The Message-ID URL provides a scheme, "mid:", to refer to
such messages as a "resource".

The "mid" (Message-ID) and "cid" (Content-ID) URL schemes provide
identifiers for messages and their body parts.  The "mid" scheme uses (a
part of) the message-id of an email message to refer to a specific
message.  The "cid" scheme refers to a specific body part of a message;
its use is generally limited to references to other body parts in the
same message as the referring body part.  The "mid" scheme may also
refer to a specific body part within a designated message, by including
the content-ID's address.

A note on terminology.  The terms "body part" and "MIME entity" are used
interchangeably.  They refer to the headers and body of a MIME message,
either the message itself or one of the body parts contained in a
Multipart message.

2. The MID and CID URL Schemes

RFC1738 [URL] reserves the "mid" and "cid" schemes for Message-ID and
Content-ID respectively.  This memorandum defines the syntax for those
URLs.  Because they use the same syntactic elements they are presented
together.


The URLs take the form

     content-id    = url-addr-spec

     message-id    = url-addr-spec

     url-addr-spec = addr-spec  ; URL encoding of RFC 822 addr-spec

     cid-url       = "cid" ":" content-id

     mid-url       = "mid" ":" message-id [ "/" content-id ]



Levinson                    Expires July 1997                   [Page 2]


Internet Draft                                Message- & Content-ID URLs


     Note: in Internet mail messages, the addr-spec in a Content-ID
     [MIME] or Message-ID [822] header are enclosed in angle brackets
     (<>).  Since addr-spec in a Message-ID or Content-ID might contain
     characters not allowed within a URL; any such character (including
     "/", which is reserved within the "mid" scheme) must be hex-encoded
     using the %hh escape mechanism in [URL].


A "mid" URL with only a "message-id" refers to an entire message.  With
the appended "content-id", it refers to a body part within a message, as
does a "cid" URL.  The Content-ID of a MIME body part is required to be
globally unique.  However, in many systems that store messages, body
parts are not indexed independently their context (message).  The "mid"
URL long form was designed to supply the context needed to support
interoperability with such systems.

A implementation conforming to this specification is required to support
the "mid" URL long form (message-id/content-id).  Conforming implementa-
tions can choose to, but are not required to, take advantage of the con-
tent-id's uniqueness and interpret a "cid" URL to refer to any body part
within the message store.

In limited circumstances (e.g., within multipart/alternate), a single
message may contain several body parts that have the same Content-ID.
For example when identical data can be accessed through different meth-
ods [MIME, sect. 7.2.3].  In those cases, conforming implementations are
required to use the rules of the containing MIME entity (e.g., multi-
part/alternate) to select the body part to which the Content-ID refers.

A "cid" URL is converted to the corresponding Content-ID message header
[MIME] by removing the "cid:" prefix, converting %hh hex-escaped charac-
ters to their ASCII equivalents and enclosing the remaining parts with
an angle bracket pair, "<" and ">".  For example,
"mid:foo4%25foo1@bar.net" corresponds to

     Message-ID: <foo4%foo1@bar.net>

A "mid" URL is converted to a Message-ID or Message-ID/Content-ID pair
in a similar fashion.

Both message-id and content-id are required to be globally unique.  That
is, no two different messages will ever have the same Message-ID addr-
spec; no different body parts will ever have the same Content-ID addr-
spec.  A common technique used by many message systems is to use a time
and date stamp along with the local host's domain name, e.g.,
950124.162336@XIson.com.





Levinson                    Expires July 1997                   [Page 3]


Internet Draft                                Message- & Content-ID URLs


Some Examples

The following message contains an HTML body part that refers to an image
contained in another body part.  Both body parts are contained in a Mul-
tipart/Related MIME entity.  The HTML IMG tag contains a cidurl which
points to the image.

     From: foo1@bar.net
     To: foo2@bar.net
     Subject: A simple example
     Mime-Version: 1.0
     Content-Type: multipart/related; boundary="boundary-example-1";
                   type=Text/HTML

     --boundary-example 1
     Content-Type: Text/HTML; charset=US-ASCII

     ... text of the HTML document, which might contain a hyperlink
     to the other body part, for example through a statement such as:
     <IMG SRC="cid:foo4*foo1@bar.net" ALT="IETF logo">

     --boundary-example-1
     Content-ID: foo4*foo1@bar.net
     Content-Type: IMAGE/GIF
     Content-Transfer-Encoding: BASE64

     R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5
     NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A
     etc...

     --boundary-example-1--

The following message points to another message (hopefully still in the
recipient's message store).

     From: bar@none.com
     To: phooey@all.com
     Subject: Here's how to do it
     Content-type: text/html; charset=usascii

     ...  The items in my
     <A HREF= "mid:960830.1639@XIson.com/partA.960830.1639@XIson.com">
     previous message</A>, shows how the approach you propose can be
     used to accomplish ...







Levinson                    Expires July 1997                   [Page 4]


Internet Draft                                Message- & Content-ID URLs


3. Security Considerations

The URLs defined here provide an addressing or referencing mechanism.
The values of these URLs disclose no more about the originators environ-
ment than the corresponding Message-ID and Content-ID values.  Where
concern exists about such disclosures the originator of a message using
mid and cid URLs must take precautions to insure that confidential
information is not disclosed.  Those precautions should already be in
place to handle existing mail use of the Message-ID and Content-ID.

4. References


[822]     Crocker, D., "Standard for the Format of ARPA Internet Text
          Messages," August 1982, University of Delaware, STD 11, RFC
          822.

[MIME]    N. Borenstein, N. Freed, "MIME (Multipurpose Internet Mail
          Extensions) Part One:  Mechanisms for Specifying and Describ-
          ing the Format of Internet Message Bodies," September 1993,
          RFC 1521.

[URL]     Berners-Lee, T., Masinter, L., and McCahill, M., "Uniform
          Resource Locators (URL)," December 1994.

[MULREL]  E. Levinson, "The MIME Multipart/Related Content-type," Decem-
          ber 1995, RFC 1874.

5. Acknowledgments

The original concept of "mid" and "cid" URLs were part of the Tim Bern-
ers-Lee's original vision of the World Wide Web. The ideas and design
have benefited greatly by discussions with Harald Alvestrand, Dan Con-
nolly, Roy Fielding, Larry Masinter, Jacob Palme, and others in the
MHTML working group.

6. Author's Address

Edward Levinson
47 Clive Street
Metuchen, NJ  08840-1060
USA
+1 908 549 3716
<XIson@cnj.digex.net>







Levinson                    Expires July 1997                   [Page 5]