RFC 2957

The application/whoispp-query Content-Type

πŸ“… published October 2000, from ietf

The application/whoispp-query Content-Type πŸ’–

okay bestie, this is RFC 2957 πŸŽ€ It was written by Leslie L. Daigle (Thinking Cat Enterprises) and Patrik Faltstrom (Cisco Systems Inc.) and published in October 2000. It's Informational, so it's not an Internet standard, just useful info for the community ✨ It doesn't list anything it obsoletes or updates, so it's a pretty chill, standalone doc 🧚


Status of This Memo πŸ“‹

this memo is here to give the Internet community information πŸ’… it does not specify an Internet standard of any kind. distribution of this memo is unlimited, so share it with everyone πŸ¦‹

copyright (C) The Internet Society (2000). all rights reserved πŸ’œ

Abstract 🌸

this doc defines how Whois++ protocol (RFC 1835) queries get written inside MIME (Multipurpose Internet Mail Extensions) (RFC 2046) media types. the goal, together with RFC 2958, is to let MIME-enabled mail software, and other systems using Internet media types, actually carry out Whois++ transactions. it's giving connection πŸ”₯

1. MIME Registration Information πŸŽ€

ok so here's the registration request that gets sent to IANA. it's literally just a form, but it's serving structure πŸ’…

To: iana@isi.edu
Subject:  Registration of MIME media type application/whoispp-query

MIME Type name:         Application

MIME subtype name:      whoispp-query

Required parameters:    none

Optional parameters:    none

Encoding considerations: Any valid MIME encodings may be used

Security considerations: This content-type contains purely
descriptive information (i.e., no directives).  There are security
considerations with regards to the appropriateness (privacy) of
information provided through the use of this content-type, and the
authenticity of the information so-provided.  This content-type
provides no native mechanisms for authentication.

Published specification:  this document

Person & email address to contact for further information:

                        Leslie L. Daigle
                        leslie@thinkingcat.com

Intended usage:         common
⚠️ bestie, the security bit matters. this content-type is purely descriptive (no directives), but there are real privacy concerns about what info gets shared through it, and about whether that info is authentic. and there's zero native authentication, so don't assume anything is verified 😭

2. whoispp-query Syntax ✨

this grammar uses BNF-like notation from [RFC2234] to define what counts as valid input to a Whois++ server. so it basically describes what a whoispp-query media type object is supposed to look like 🧚

N.B. (note bene, aka pay attention!!): as the ABNF definition lays out, rule names and string literals are US-ASCII and case-insensitive πŸ™ˆ

whois-command   =   ( system-command / terms [":" globalcnstrnts] )
                    nl

system-command  =   "constraints" / "describe" / "commands" /
                    "polled-by" / "polled-for" / "version" / "list" /
                    "show" [1*sp bytestring] / "help" [1*sp
                    bytestring] / "?" [bytestring]

terms           =   and-expr *("or" and-expr)

and-expr        =   not-expr *("and" not-expr)

not-expr        =   ["not"] (term / ( "(" terms ")" ))

term            =   ( generalterm / specificterm / combinedterm )
                    localcnstrnts

generalterm     =   bytestring

specificterm    =   specificname "=" bytestring

specificname    =   "handle" / "value" / "template"

combinedterm    =   attributename "=" bytestring

globalcnstrnts  =   globalcnstrnt *(";" globalcnstrnt)
globalcnstrnt   =   "format" "=" format / "maxfull" "=" 1*digit /
                    "maxhits" "=" 1*digit / "case" "=" casevalue /
                    "search" "=" searchvalue / opt-globalcnst

opt-globalcnst  =   "authenticate" "=" auth-method / "language" "="
                    language / "incharset" "=" characterset /
                    "outcharset" "=" characterset / "ignore" "="
                    attriblist / "include" "=" attriblist

localcnstrnts   =   0*(";" localcnstrnt)

localcnstrnt    =   "case" "=" casevalue / "search" "=" searchvalue

format          =   "full" / "abridged" / "handle" / "summary" /
                    "server-to-ask"

auth-method     =  bytestring

language        = <The language code defined in RFC1766 [ALVE95]>

characterset    =   "us-ascii" / "iso-8859-1" / "iso-8859-2" / "iso-
                    8859-3" / "iso-8859-4" / "iso-8859-5" / "iso-
                    8859-6" / "iso-8859-7" / "iso-8859-8" / "iso-
                    8859-9" / "iso-8859-10" / "UNICODE-1-1-UTF-8" /
                    "UNICODE-2-0-UTF-8" "UTF-8"

                      ;"UTF-8" is as defined in [RFC2279].  This is
                      ;the character set label that should be used
                      ;for UTF encoded information; the labels
                      ;"UNICODE-2-0-UTF-8" and "UNICODE-1-1-UTF-8"
                      ;are retained primarily for compatibility with
                      ;older Whois++ servers (and as outlined in
                      ;[RFC2279]).

searchvalue     =   "exact" / "substring" / "regex" / "fuzzy" /
                    "lstring"

casevalue       =   "ignore" / "consider"

bytestring      =   0*charbyte

attributename   =   1*attrbyte

attriblist      =   attributename 0*("," attributename)

charbyte        =   "\" specialbyte / normalbyte

normalbyte      =   <%d33-255, except specialbyte>
attrbyte        =   <%d33-127 except specialbyte> /
                                           "\" <specialbyte except
                    ":" " " tab nl>

specialbyte     =   " " / tab / "=" / "," / ":" / ";" / "\" /
                                           "*" / "." / "(" / ")" /
                    "[" / "]" / "^" /
                                           "$" / "!" / "?"

tab             =  %d09
sp              =  %d32        ; space

digit           =   "0" / "1" / "2" / "3" / "4" /
                                           "5" / "6" / "7" / "8" /
                    "9"

nl              =   %d13 %d10   ; CR LF

NOTE: blanks that matter to a query must be escaped. the following characters, when they matter to the query, may be preceded and/or followed by a single blank:

  : ; , ( ) = !

3. Security Considerations πŸ”₯

security issues are discussed in section 1. go back and re-read it, it's serious 😭

4. References πŸ“š

these are all the refs, with every detail kept πŸ’–

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

[RFC2234] Crocker, D. and P. Overell,  "Augmented BNF for Syntax
          Specifications: ABNF", RFC 2234, November 1997.

[RFC2958] Daigle, L. and P. Faltstrom, "The application/whoispp-
          response Content-type", RFC 2958, October 2000.

[RFC1835] Deutsch, P., Schoultz, R., Faltstrom, P. and C.  Weider,
          "Architecture of the WHOIS++ service", RFC 1835, August
          1995.

[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
          Extensions (MIME) Part Two: Media Types", RFC 2046,
          November 1996.

[HARR85]  Harrenstein K., Stahl M. and E. Feinler, "NICNAME/WHOIS",
          RFC 954, October 1985.

[POST82]  Postel J., "Simple Mail Transfer Protocol", STD 10, RFC
          821, August 1982.

[IIIR]    Weider C. and P. Deutsch, "A Vision of an Integrated
          Internet Information Service", RFC 1727, December 1994.

[WINDX]   Weider, C., Fullton, J. and S. Spero, "Architecture of the
          Whois++ Index Service", RFC 1913, February 1996.

[RFC2279] Yergeau F., " UTF-8, a transformation format of ISO 10646",
          RFC 2279, January 1998.

5. Authors' Addresses 🧚

here's how to reach the authors πŸ’Œ

Leslie L. Daigle
Thinking Cat Enterprises

Email:  leslie@thinkingcat.com


Patrik Faltstrom
Cisco Systems Inc
170 W Tasman Drive SJ-13/2
San Jose CA 95134
USA

EMail: paf@cisco.com
URL:   http://www.cisco.com

copyright (C) The Internet Society (2000). all rights reserved πŸ’œ

ok so the vibe here is: you can copy this document and share it, and you can make derivative works that comment on it, explain it, or help people implement it, as long as the copyright notice and this paragraph stay on every copy and derivative work. but the doc itself can't be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet orgs. the only exceptions are developing Internet standards (then the Internet Standards process copyright procedures have to be followed) or translating it into languages other than English 🌈

the permissions above are perpetual and won't be revoked by the Internet Society or its successors or assigns 🫢

this document and the info in it 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. thank you, Internet Society πŸ™πŸ’–

πŸ“¦ where this page comes from