tests/auto/qnetworkreply/resource
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 
       
     2 
       
     3 
       
     4 
       
     5 
       
     6 
       
     7 Network Working Group                                      L. Masinter
       
     8 Request for Comments: 2397                           Xerox Corporation
       
     9 Category: Standards Track                                  August 1998
       
    10 
       
    11 
       
    12                          The "data" URL scheme
       
    13 
       
    14 Status of this Memo
       
    15 
       
    16    This document specifies an Internet standards track protocol for the
       
    17    Internet community, and requests discussion and suggestions for
       
    18    improvements.  Please refer to the current edition of the "Internet
       
    19    Official Protocol Standards" (STD 1) for the standardization state
       
    20    and status of this protocol.  Distribution of this memo is unlimited.
       
    21 
       
    22 Copyright Notice
       
    23 
       
    24    Copyright (C) The Internet Society (1998).  All Rights Reserved.
       
    25 
       
    26 1. Abstract
       
    27 
       
    28    A new URL scheme, "data", is defined. It allows inclusion of small
       
    29    data items as "immediate" data, as if it had been included
       
    30    externally.
       
    31 
       
    32 2. Description
       
    33 
       
    34    Some applications that use URLs also have a need to embed (small)
       
    35    media type data directly inline. This document defines a new URL
       
    36    scheme that would work like 'immediate addressing'. The URLs are of
       
    37    the form:
       
    38 
       
    39                     data:[<mediatype>][;base64],<data>
       
    40 
       
    41    The <mediatype> is an Internet media type specification (with
       
    42    optional parameters.) The appearance of ";base64" means that the data
       
    43    is encoded as base64. Without ";base64", the data (as a sequence of
       
    44    octets) is represented using ASCII encoding for octets inside the
       
    45    range of safe URL characters and using the standard %xx hex encoding
       
    46    of URLs for octets outside that range.  If <mediatype> is omitted, it
       
    47    defaults to text/plain;charset=US-ASCII.  As a shorthand,
       
    48    "text/plain" can be omitted but the charset parameter supplied.
       
    49 
       
    50    The "data:" URL scheme is only useful for short values. Note that
       
    51    some applications that use URLs may impose a length limit; for
       
    52    example, URLs embedded within <A> anchors in HTML have a length limit
       
    53    determined by the SGML declaration for HTML [RFC1866]. The LITLEN
       
    54    (1024) limits the number of characters which can appear in a single
       
    55 
       
    56 
       
    57 
       
    58 Masinter                    Standards Track                     [Page 1]
       
    59 
       
    60 RFC 2397                 The "data" URL scheme               August 1998
       
    61 
       
    62 
       
    63    attribute value literal, the ATTSPLEN (2100) limits the sum of all
       
    64    lengths of all attribute value specifications which appear in a tag,
       
    65    and the TAGLEN (2100) limits the overall length of a tag.
       
    66 
       
    67    The "data" URL scheme has no relative URL forms.
       
    68 
       
    69 3. Syntax
       
    70 
       
    71        dataurl    := "data:" [ mediatype ] [ ";base64" ] "," data
       
    72        mediatype  := [ type "/" subtype ] *( ";" parameter )
       
    73        data       := *urlchar
       
    74        parameter  := attribute "=" value
       
    75 
       
    76    where "urlchar" is imported from [RFC2396], and "type", "subtype",
       
    77    "attribute" and "value" are the corresponding tokens from [RFC2045],
       
    78    represented using URL escaped encoding of [RFC2396] as necessary.
       
    79 
       
    80    Attribute values in [RFC2045] are allowed to be either represented as
       
    81    tokens or as quoted strings. However, within a "data" URL, the
       
    82    "quoted-string" representation would be awkward, since the quote mark
       
    83    is itself not a valid urlchar. For this reason, parameter values
       
    84    should use the URL Escaped encoding instead of quoted string if the
       
    85    parameter values contain any "tspecial".
       
    86 
       
    87    The ";base64" extension is distinguishable from a content-type
       
    88    parameter by the fact that it doesn't have a following "=" sign.
       
    89 
       
    90 4. Examples
       
    91 
       
    92    A data URL might be used for arbitrary types of data. The URL
       
    93 
       
    94                           data:,A%20brief%20note
       
    95 
       
    96    encodes the text/plain string "A brief note", which might be useful
       
    97    in a footnote link.
       
    98 
       
    99    The HTML fragment:
       
   100 
       
   101    <IMG
       
   102    SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
       
   103    AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
       
   104    ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
       
   105    a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
       
   106    ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
       
   107    F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
       
   108    hhx4dbgYKAAA7"
       
   109    ALT="Larry">
       
   110 
       
   111 
       
   112 
       
   113 
       
   114 Masinter                    Standards Track                     [Page 2]
       
   115 
       
   116 RFC 2397                 The "data" URL scheme               August 1998
       
   117 
       
   118 
       
   119    could be used for a small inline image in a HTML document.  (The
       
   120    embedded image is probably near the limit of utility. For anything
       
   121    else larger, data URLs are likely to be inappropriate.)
       
   122 
       
   123    A data URL scheme's media type specification can include other
       
   124    parameters; for example, one might specify a charset parameter.
       
   125 
       
   126       data:text/plain;charset=iso-8859-7,%be%fg%be
       
   127 
       
   128    can be used for a short sequence of greek characters.
       
   129 
       
   130    Some applications may use the "data" URL scheme in order to provide
       
   131    setup parameters for other kinds of networking applications. For
       
   132    example, one might create a media type
       
   133            application/vnd-xxx-query
       
   134 
       
   135    whose content consists of a query string and a database identifier
       
   136    for the "xxx" vendor's databases. A URL of the form:
       
   137 
       
   138    data:application/vnd-xxx-
       
   139    query,select_vcount,fcol_from_fieldtable/local
       
   140 
       
   141    could then be used in a local application to launch the "helper" for
       
   142    application/vnd-xxx-query and give it the immediate data included.
       
   143 
       
   144 5. History
       
   145 
       
   146    This idea was originally proposed August 1995. Some versions of the
       
   147    data URL scheme have been used in the definition of VRML, and a
       
   148    version has appeared as part of a proposal for embedded data in HTML.
       
   149    Various changes have been made, based on requests, to elide the media
       
   150    type, pack the indication of the base64 encoding more tightly, and
       
   151    eliminate "quoted printable" as an encoding since it would not easily
       
   152    yield valid URLs without additional %xx encoding, which itself is
       
   153    sufficient. The "data" URL scheme is in use in VRML, new applications
       
   154    of HTML, and various commercial products. It is being used for object
       
   155    parameters in Java and ActiveX applications.
       
   156 
       
   157 6. Security
       
   158 
       
   159    Interpretation of the data within a "data" URL has the same security
       
   160    considerations as any implementation of the given media type.  An
       
   161    application should not interpret the contents of a data URL which is
       
   162    marked with a media type that has been disallowed for processing by
       
   163    the application's configuration.
       
   164 
       
   165 
       
   166 
       
   167 
       
   168 
       
   169 
       
   170 Masinter                    Standards Track                     [Page 3]
       
   171 
       
   172 RFC 2397                 The "data" URL scheme               August 1998
       
   173 
       
   174 
       
   175    Sites which use firewall proxies to disallow the retrieval of certain
       
   176    media types (such as application script languages or types with known
       
   177    security problems) will find it difficult to screen against the
       
   178    inclusion of such types using the "data" URL scheme.  However, they
       
   179    should be aware of the threat and take whatever precautions are
       
   180    considered necessary within their domain.
       
   181 
       
   182    The effect of using long "data" URLs in applications is currently
       
   183    unknown; some software packages may exhibit unreasonable behavior
       
   184    when confronted with data that exceeds its allocated buffer size.
       
   185 
       
   186 7. References
       
   187 
       
   188    [RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter,
       
   189                "Uniform Resource Identifiers (URI): Generic Syntax", RFC
       
   190                2396, August 1998.
       
   191 
       
   192    [RFC1866]   Berners-Lee, T., and D. Connolly, "Hypertext Markup
       
   193                Language - 2.0.", RFC 1866, November 1995.
       
   194 
       
   195    [RFC2045]   Freed N., and N. Borenstein., "Multipurpose Internet Mail
       
   196                Extensions (MIME) Part One: Format of Internet Message
       
   197                Bodies", RFC 2045, November 1996.
       
   198 
       
   199 Author contact information:
       
   200 
       
   201    Larry Masinter
       
   202    Xerox Palo Alto Research Center
       
   203    3333 Coyote Hill Road
       
   204    Palo Alto, CA 94304
       
   205 
       
   206    EMail: masinter@parc.xerox.com
       
   207 
       
   208 
       
   209 
       
   210 
       
   211 
       
   212 
       
   213 
       
   214 
       
   215 
       
   216 
       
   217 
       
   218 
       
   219 
       
   220 
       
   221 
       
   222 
       
   223 
       
   224 
       
   225 
       
   226 Masinter                    Standards Track                     [Page 4]
       
   227 
       
   228 RFC 2397                 The "data" URL scheme               August 1998
       
   229 
       
   230 
       
   231 Full Copyright Statement
       
   232 
       
   233    Copyright (C) The Internet Society (1998).  All Rights Reserved.
       
   234 
       
   235    This document and translations of it may be copied and furnished to
       
   236    others, and derivative works that comment on or otherwise explain it
       
   237    or assist in its implementation may be prepared, copied, published
       
   238    and distributed, in whole or in part, without restriction of any
       
   239    kind, provided that the above copyright notice and this paragraph are
       
   240    included on all such copies and derivative works.  However, this
       
   241    document itself may not be modified in any way, such as by removing
       
   242    the copyright notice or references to the Internet Society or other
       
   243    Internet organizations, except as needed for the purpose of
       
   244    developing Internet standards in which case the procedures for
       
   245    copyrights defined in the Internet Standards process must be
       
   246    followed, or as required to translate it into languages other than
       
   247    English.
       
   248 
       
   249    The limited permissions granted above are perpetual and will not be
       
   250    revoked by the Internet Society or its successors or assigns.
       
   251 
       
   252    This document and the information contained herein is provided on an
       
   253    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
       
   254    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
       
   255    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
       
   256    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
       
   257    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
       
   258 
       
   259 
       
   260 
       
   261 
       
   262 
       
   263 
       
   264 
       
   265 
       
   266 
       
   267 
       
   268 
       
   269 
       
   270 
       
   271 
       
   272 
       
   273 
       
   274 
       
   275 
       
   276 
       
   277 
       
   278 
       
   279 
       
   280 
       
   281 
       
   282 Masinter                    Standards Track                     [Page 5]
       
   283