home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1872.txt < prev    next >
Text File  |  1996-05-07  |  16KB  |  246 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        E. Levinson Request for Comments: 1872            Accurate Information Systems, Inc. Category: Experimental                                     December 1995 
  8.  
  9.                  The MIME Multipart/Related Content-type 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo defines an Experimental Protocol for the Internet    community.  This memo does not specify an Internet standard of any    kind.  Discussion and suggestions for improvement are requested.    Distribution of this memo is unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    The Multipart/Related content-type provides a common mechanism for    representing objects that are aggregates of related MIME body parts.    This document defines the Multipart/Related content-type and provides    examples of its use. 
  18.  
  19. 1.  Introduction 
  20.  
  21.    Several applications of MIME, including MIME-PEM, and MIME-Macintosh    and other proposals, require multiple body parts that make sense only    in the aggregate.  The present approach to these compound objects has    been to define specific multipart subtypes for each new object.  In    keeping with the MIME philosophy of having one mechanism to achieve    the same goal for different purposes, this document describes a    single mechanism for such aggregate or compound objects. 
  22.  
  23.    The Multipart/Related content-type addresses the MIME representation    of compound objects.  The object is categorized by a "type"    parameter.  Additional parameters are provided to indicate a specific    starting body part or root and auxiliary information which may be    required when unpacking or processing the object. 
  24.  
  25.    Responsibility for the display or processing of a Multipart/Related's    constituent entities rests with the application that handles the    compound object. 
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. Levinson                      Experimental                      [Page 1] 
  38.  RFC 1872                   Multipart/Related               December 1995 
  39.  
  40.  2.  Multipart/Related Registration Information 
  41.  
  42.    The following form is copied from RFC 1590, Appendix A. 
  43.  
  44.    To:  IANA@isi.edu    Subject:  Registration of new Media Type content-type/subtype 
  45.  
  46.    Media Type name:           Multipart 
  47.  
  48.    Media subtype name:        Related 
  49.  
  50.    Required parameters:       Type, a media type/subtype. 
  51.  
  52.    Optional parameters:       Start, a content-id.                               Start-info, a string or content-id list. 
  53.  
  54.    Encoding considerations:   Multipart content-types cannot have                               encodings. 
  55.  
  56.    Security considerations:   Depends solely on the referenced type. 
  57.  
  58.    Published specification:   This document. 
  59.  
  60.    Person & email address to contact for further information:                               Edward Levinson                               Accurate Information Systems, Inc.                               2 Industrial Way                               Eatontown, NJ 07724                               +1 908 389 5550                               +1 908 389 5556 (fax)                               ELevinson@Accurate.com 
  61.  
  62. 3.  Intended usage 
  63.  
  64.    The Multipart/Related media type is intended for compound objects    consisting of several inter-related body parts.  For a    Multipart/Related object, proper display cannot be achieved by    individually displaying the constituent body parts.  The content-type    of the Multipart/Related object is specified by the type parameter.    The "start" parameter, if given, points, via a content-ID, to the    body part that contains the object root.  The default root is the    first body part within the Multipart/Related body. 
  65.  
  66.    The relationships among the body parts of a compound object    distinguishes it from other object types.  These relationships are    often represented by links internal to the object's components that    reference the other components.  Within a single operating    environment the links are often file names, such links may be 
  67.  
  68.  
  69.  
  70. Levinson                      Experimental                      [Page 2] 
  71.  RFC 1872                   Multipart/Related               December 1995 
  72.  
  73.     represented within a MIME message using content-IDs or the value of    some other "Content-" header. 
  74.  
  75. 3.1.  The Type Parameter 
  76.  
  77.    The type parameter must be specified and its value is the MIME media    type of the root body part.  It permits a MIME user agent to    determine the content-type without reference to the enclosed body    part.  If the value of the type parameter and the root body part's    content-type differ then the User Agent's behavior is undefined. 
  78.  
  79.    Note: Constraining the "type" parameter's value to an existing media    type allows the appropriate processing to be identified without    creating yet another hierarchy of registered types.  A possible    default action would have the MIME mail User Agent (MUA) to display    the "start" entity alone when it could process the media type as a    basic type but not as Multipart/Related. 
  80.  
  81. 3.2.  The Start Parameter 
  82.  
  83.    The start parameter, if given, is the content-ID of the compound    object's root.  If not present the root is the first body part in the    Multipart/Related entity.  The root is the element the application    processes first. 
  84.  
  85.    In the case of a Multipart/Alternative body part containing several    entities with identical content-IDs the start entity should be    selected using the Multipart/Alternative rules. 
  86.  
  87.    Note: The "start" parameter allows for types in which the root    element gets generated by the sending application, perhaps on the    fly.  Such an application can create the "start" content-id when    processing begins and then insert the body part when it is complete. 
  88.  
  89. 3.3.  The Start-Info Parameter 
  90.  
  91.    Additional information can be provided to an application by the    start-info parameter.  It contains either a string or points, via a    content-ID, to another MIME entity in the message.  A typical use    might be to provide additional command line parameters or a MIME    entity giving auxiliary information for processing the compound    object. 
  92.  
  93.    Applications that use Multipart/Related must specify the    interpretation of start-info.  User Agents shall provide the    parameter's value to the processing application.  Processes can    distinguish a start-info reference from a token or quoted-string by    examining the first non-white-space character, "<" indicates a 
  94.  
  95.  
  96.  
  97. Levinson                      Experimental                      [Page 3] 
  98.  RFC 1872                   Multipart/Related               December 1995 
  99.  
  100.     content-id reference. 
  101.  
  102. 3.4.  Syntax 
  103.  
  104.      related-param    := [ ";" "start" "=" cid ]                          [ ";" "start-info"  "="                            ( cid-list / value ) ]                          [ ";" "type"  "=" type "/" subtype ]                          ; order independent 
  105.  
  106.      cid-list        := cid cid-list 
  107.  
  108.      cid             := msg-id     ; c.f. [822] 
  109.  
  110.      value           := token / quoted-string    ; c.f. [MIME]                              ; value cannot begin with "<" 
  111.  
  112.    Note that the parameter values will usually require quoting.  Msg-id    contains the special characters "<", ">", "@", and perhaps other    special characters.  If msg-id contains quoted-strings, those quote    marks must be escaped.  Similarly, the type parameter contains the    special character "/". 
  113.  
  114. 4.  Examples 
  115.  
  116. 4.1 Application/X-FixedRecord 
  117.  
  118.    The X-FixedRecord content-type consists of one or more octet- streams    and a list of the lengths of each record.  The root, which lists the    record lengths of each record within the streams.  The record length    list, type Application/X-FixedRecord, consists of a set of INTEGERs    in ASCII format, one per line.  Each INTEGER gives the number of    octets from the octet-stream body part that constitute the next    "record". 
  119.  
  120.    The example below, uses a single data block which the sender    processes on the fly to generate the record length list.    Consequently the list appears after the data. 
  121.  
  122.      Content-Type: Multipart/Related; boundary=example-1              start="<950120.aaCC@XIson.com>";              type="Application/X-FixedRecord"              start-info="-o ps" 
  123.  
  124.      --example-1      Content-Type: Application/octet-stream      Content-Description: The fixed length records      Content-Transfer-Encoding: base64 
  125.  
  126.  
  127.  
  128. Levinson                      Experimental                      [Page 4] 
  129.  RFC 1872                   Multipart/Related               December 1995 
  130.  
  131.       Content-ID: <950120.aaCB@XIson.com> 
  132.  
  133.      T2xkIE1hY0RvbmFsZCBoYWQgYSBmYXJtCkUgSS      BFIEkgTwpBbmQgb24gaGlzIGZhcm0gaGUgaGFk      IHNvbWUgZHVja3MKRSBJIEUgSSBPCldpdGggYS      BxdWFjayBxdWFjayBoZXJlLAphIHF1YWNrIHF1      YWNrIHRoZXJlLApldmVyeSB3aGVyZSBhIHF1YW      NrIHF1YWNrCkUgSSBFIEkgTwo=      --example-1      Content-Type: Application/X-FixedRecord      Content-ID: <950120.aaCC@XIson.com> 
  134.  
  135.      25      10      34      10      25      21      26      10      --example-1-- 
  136.  
  137. 4.2 Text/X-Okie 
  138.  
  139. The Text/X-Okie is an invented markup language, similar to HTML, that permits the inclusion of images with text.  A feature of this example is the inclusion of two additional body parts, both picture. They are referred to internally by the encapsulated document via each picture's body part content-ID.  Usage of "cid:", as in this example, may be useful for a variety of compound objects.  It is not, however, a part of the Multipart/Related specification. 
  140.  
  141.      Content-Type: Multipart/Related; boundary=example-2;              start="<950118.AEBH@XIson.com>"              type="Text/x-Okie" 
  142.  
  143.      --example-2      Content-Type: Text/x-Okie; charset=iso-8859-1;              declaration="<950118.AEB0@XIson.com>"      Content-ID: <950118.AEBH@XIson.com>      Content-Description: Document 
  144.  
  145.      {doc}      This picture was taken by an automatic camera mounted ...      {image file=cid:950118.AECB@XIson.com}      {para}      Now this is an enlargement of the area ... 
  146.  
  147.  
  148.  
  149. Levinson                      Experimental                      [Page 5] 
  150.  RFC 1872                   Multipart/Related               December 1995 
  151.  
  152.       {image file=cid:950118.AFDH@XIson.com}      {/doc}      --example-2      Content-Type: image/jpeg      Content-ID: <950118.AFDH@XIson.com>      Content-Transfer-Encoding: BASE64      Content-Description: Picture A 
  153.  
  154.      [encoded jpeg image]      --example-2      Content-Type: image/jpeg      Content-ID: <950118.AECB@XIson.com>      Content-Transfer-Encoding: BASE64      Content-Description: Picture B 
  155.  
  156.      [encoded jpeg image]      --example-1-- 
  157.  
  158. 5.  User Agent Requirements 
  159.  
  160.    User agents that do not recognize Multipart/Related shall, in    accordance with [MIME], treat the entire entity as Multipart/Mixed.    MIME User Agents that recognize Multipart/Related entities but are    unable to process the given type shall either suppress the entire    Multipart/Related body part or process the root alone.  In either    case the user should be notified of the MUA's action. 
  161.  
  162.    Handling Multipart/Related differs from other media types in that    processing cannot be reduced to handling the individual entities.    Existing media types are handled by MIME-capable MUAs handle in a    straightforward manner.  For basic media types (e.g., text, image,    etc.) the body of the entity can be directly passed to a display    process.  Composite media types can be reduced to handing one or more    discrete types. 
  163.  
  164.    Multipart/Related provides an irreducible composite media type. 
  165.  
  166.    The following sections discuss what information the processing    application requires. 
  167.  
  168.    It is possible that an application specific "receiving agent" will    manipulate the entities, after initial processing by the MIME User    Agent, prior to invoking actual application process.  From the    viewpoint of the MUA, the receiving agent is the application.  Okie,    above, demonstrates this; it may need a receiving agent to parse the    document and substitute local file names for the originator's file    names.  Other applications may just require a table showing the    correspondence between the local file names and the originator's. 
  169.  
  170.  
  171.  
  172. Levinson                      Experimental                      [Page 6] 
  173.  RFC 1872                   Multipart/Related               December 1995 
  174.  
  175.     The receiving agent takes responsibility any for such processing. 
  176.  
  177. 5.1 Data Requirements 
  178.  
  179.    MIME-capable MUAs are required to provide the application: 
  180.  
  181.    (a)  the bodies of the MIME entities and the entity Content-*         headers, 
  182.  
  183.    (b)  the parameters of the Multipart/Related Content-type         header, and 
  184.  
  185.    (c)  the correspondence between each body's local file name,         that body's header data, and, if present, the body part's         content-ID. 
  186.  
  187. 5.2 Storing Multipart/Related Entities 
  188.  
  189.    The Multipart/Related media type will be used for objects that have    internal linkages between the body parts.  When the objects are    stored the linkages may require processing by the application or its    receiving agent. 
  190.  
  191. 5.3 Recursion 
  192.  
  193.    MIME is a recursive structure.  Hence one must expect a    Multipart/Related entity to contain other Multipart/Related entities.    When a Multipart/Related entity is being processed for display or    storage, any enclosed Multipart/Related entities shall be processed    as though they were being stored.  It shall be the responsibility of    the application handling the outermost Multipart/Related to insure    the appropriate processing of embedded Multipart/Related entities. 
  194.  
  195. 5.5 Configuration Considerations 
  196.  
  197.    It is suggested that MUAs that use configuration mechanisms, see    [CFG] for an example, refer to Multipart/Related as    Multipart/Related/<type>, were <type> is the value of the "type"    parameter. 
  198.  
  199. 6.  Security Considerations 
  200.  
  201.    Security considerations relevant to Multipart/Related are identical    to those of the underlying content-type. 
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209. Levinson                      Experimental                      [Page 7] 
  210.  RFC 1872                   Multipart/Related               December 1995 
  211.  
  212.  7.  Acknowledgments 
  213.  
  214.    This proposal is the result of conversations the author has had with    many people.  In particular, similar work was described by Harald A.    Alvestrand (early drafts of Multipart/Related), Dave Crocker    (Multipart/Families), and Keith Moore (Multipart/References). In    addition, James Clark, Charles Goldfarb, Gary Houston, Ned Freed, Ray    Moody, and Don Stinchfield, provided both encouragement and    invaluable help.  The author, however, take full responsibility for    all errors contained in this document. 
  215.  
  216. 8.  References 
  217.  
  218.    [822]       Crocker, D., "Standard for the Format of ARPA                Internet Text Messages", STD 11, RFC 822, UDEL,                August 1982. 
  219.  
  220.    [CFG]       Borenstein, N., "A User Agent Configuration                Mechanism For Multimedia Mail Format Information",                RFC 1524, Bellcore, September 1993. 
  221.  
  222.    [MIME]      Borenstein, N. and and N. Freed, "MIME (Multipurpose                Internet Mail Extensions) Part One: Mechanisms for                Specifying and Describing the Format of Internet Message                Bodies", RFC 1521, Bellcore, Innosoft, September 1993. 
  223.  
  224. 9.  Author's Address 
  225.  
  226.    Edward Levinson    Accurate Information Systems, Inc.    2 Industrial Way    Eatontown, NJ  07724-2265    USA 
  227.  
  228.    Phone: +1 908 389 5550    EMail: ELevinson@Accurate.com 
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244. Levinson                      Experimental                      [Page 8] 
  245.  
  246.