RFC 2987

Registration of Charset and Languages Media Features Tags

πŸ“… published November 2000, from ietf

RFC 2987: Registration of Charset and Languages Media Features Tags πŸ’–

okay bestie, the title block is giving organized ✨ Paul Hoffman from the Internet Mail Consortium wrote this one. It's from the Network Working Group, it's a Standards Track doc, and it dropped in November 2000. The header doesn't list anything it obsoletes or updates, so it's not replacing or changing any other RFC 🧚


Status of this Memo πŸŽ€

this is an Internet standards track protocol doc for the whole Internet community, and it's literally asking people to talk about it and send ideas for making it better 🫢 if you want to know where it stands officially, check the current "Internet Official Protocol Standards" (STD 1), which tracks the standardization state and status of this protocol. distribution is unlimited, so share away πŸ¦‹

Copyright (C) The Internet Society (2000). All Rights Reserved. 🌈

Abstract ✨

this doc holds the registration for two media feature tags: "charset" and "language" πŸ’… they let a device and its user say which character sets and human languages they can understand. the templates here are based on RFC 2506 πŸ“

1. Registration for charset πŸ¦‹

the charset registration is written as a template, so here it is exactly as it appears:

   To: media-feature-tags@apps.ietf.org (Media feature tags mailing list)
   Subject: Registration of media feature tag charset

   Media feature tag name:
      charset

   ASN.1 identifier associated with feature tag:
      1.3.6.1.8.1.31

   Summary of the media feature indicated by this feature tag:
      Ability to display particular charsets as defined in [CHARSET].
           For most devices, this media feature is usually a capability;
           that is, most devices cannot intelligently process text in a
           charset that is unknown to the device.

   Values appropriate for use with this feature tag:
      The values are tokens as defined in [CHARSET].  The values can
           only be compared for equality.  Comparison is not case
           sensitive.

   The feature tag is intended primarily for use in the following
   applications, protocols, services, or negotiation mechanisms:
       Any protocol that uses media tags

   Examples of typical use:
      (| (charset=utf-8);q=1.0 (charset=iso-8859-1);q=0.9
         (charset=utf-16);q=0.5 )

   Related standards or documents:
      "IANA Charset Registration Procedures", RFC 2978

   Considerations particular to use in individual applications,
   protocols, services, or negotiation mechanisms:
      None

   Interoperability considerations: Aliases for charsets should not be
           used in media feature expressions because feature expression
           manipulation tools may convert aliases to the the principal
           name for the charset.  Even though charset names are not
           case-sensitive, values should be expressed as all lowercase
           letters to increase the likelihood of interoperability.  The
           "charset" capability should always be indicated in
           conjunction with any capability to handle textual data.

   Security considerations:
      If it is known that there is a security bug in the display of a
      particular charset in a particular environment, knowing that a
      device can accept that charset may slightly help an attacker.

   Additional information:
      None

   Name(s) & email address(es) of person(s) to contact for further
      information:
      Paul Hoffman <phoffman@imc.org>

   Intended usage:
      COMMON

   Author/Change controller:
      IETF

   Requested IANA publication delay:
      None

   Other information:
      None

so the big vibe here: "charset" is basically a capability πŸ’– most devices can't properly process text in a charset they don't recognize, so it's really about whether the device can display that charset at all. values are tokens from [CHARSET], you can only check them for equality, and it's not case sensitive 🌸

the interop tea β˜• aliases should not be used in media feature expressions, since tools might swap them for the principal name. charset names aren't case-sensitive, but the values should be all lowercase so everyone matches up 🫢 and "charset" should always be indicated alongside any capability for handling textual data πŸ’…

security-wise, knowing a device accepts a charset with a display bug might slightly help an attacker πŸ’€ so that's a little scary, bestie πŸ™ˆ

2. Registration for language 🌸

here's the language template, verbatim:

   To: media-feature-tags@apps.ietf.org (Media feature tags mailing list)
   Subject: Registration of media feature tag language

   Media feature tag name:
      language

   ASN.1 identifier associated with feature tag:
      1.3.6.1.8.1.32

   Summary of the media feature indicated by this feature tag:  Ability
      to display particular human languages as defined in [LANG].  Note
      that "display" in this case will most often mean speech by a
      computer.  For most devices, this media feature is a preference,
      not a requirement.

   Values appropriate for use with this feature tag:
      The values are tokens, with allowable values defined by
           registration as defined in [LANG].  The values can only be
           compared for equality.  As described in [LANG], language tags
           are always handled as a single token, and "subtags" are not
           used for comparison.  Comparison is not case sensitive.

   The feature tag is intended primarily for use in the following
   applications, protocols, services, or negotiation mechanisms:
       Any protocol that uses media tags

   Examples of typical use:
      (| (language=no-nynorsk);q=1.0 (language=no-bokmaal);q=0.9
         (language=i-sami-no);q=0.5 )

   Related standards or documents:
      "Tags for the Identification of Languages", RFC 1766

   Considerations particular to use in individual applications,
   protocols, services, or negotiation mechanisms:
      None

   Interoperability considerations:
      Even though language tags are not case-sensitive, values should be
           expressed as all lowercase letters to increase the likelihood
           of interoperability.

   Security considerations:
      If it is known that there is a security bug in the display of a
      particular language in a particular environment, knowing that a
      device can accept that language may slightly help an attacker.

   Additional information:
      None

   Name(s) & email address(es) of person(s) to contact for further
   information:
      Paul Hoffman <phoffman@imc.org>

   Intended usage:
      COMMON

   Author/Change controller:
       IETF

   Requested IANA publication delay:
       None

   Other information:
       None

the language one is a whole mood 🧚 "display" here usually means a computer speaking the language, and for most devices it's a preference, not a hard requirement πŸŽ€ the values are tokens defined by registration under [LANG], compared for equality only, and language tags are handled as one single token, so "subtags" don't get compared separately πŸ’œ still not case sensitive, bestie πŸ’…

interop: values should be all lowercase so everything lines up πŸ¦‹ same security vibe as charset: knowing a device accepts a language with a display bug might slightly help an attacker 😭

3. Security Considerations πŸ’€

the security considerations live in the two registrations above, so go read those πŸ™ˆ ngl that's a lot of responsibility for two tiny templates, but they take it seriously ✨

4. IANA Considerations 🌈

the bulk of this document is IANA registrations, so this whole thing is really just paperwork for the registry πŸ“‹πŸ’…

5. References πŸ“

   [CHARSET] Freed, N. and J. Postel, "IANA Charset Registration
             Procedures", BCP 19, RFC 2978, October 2000.

   [LANG]    Alvestrand, H., "Tags for the Identification of Languages",
             RFC 1766, March 1995.

   [TAG-REG] Holtman, K., Mutz, A. and T. Hardie, "Media Feature Tag
             Registration Procedure", BCP 31, RFC 2506, March 1999.

6. Author's Address 🫢

   Paul Hoffman
   Internet Mail Consortium
   127 Segre Place
   Santa Cruz, CA  95060 USA

   EMail: phoffman@imc.org

Copyright (C) The Internet Society (2000). All Rights Reserved. πŸ’œ

the full legal text, kept word for word:

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement πŸŽ€

funding for the RFC Editor function is currently provided by the Internet Society ✨


bestie, that's the whole doc πŸ¦‹ two tiny registrations, a bunch of legal fine print, and a lot of love for making devices understand each other πŸ’–πŸ§š

πŸ“¦ where this page comes from