The application/whoispp-query Content-Type
Network Working Group L. Daigle
Request for Comments: 2957 Thinking Cat Enterprises
Category: Informational P. Faltstrom
Cisco Systems Inc.
October 2000
The application/whoispp-query Content-Type
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2000). All Rights Reserved.
Abstract
This document defines the expression of Whois++ protocol (RFC 1835)
queries within MIME (Multipurpose Internet Mail Extensions) (RFC 2046) media types. The intention of this document, in conjunction
with RFC 2958 is to enable MIME-enabled mail software, and other
systems using Internet media types, to carry out Whois++
transactions.
1. MIME Registration Information
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
Daigle & Faltstrom Informational [Page 1]
RFC 2957 application/whoispp-query Content-Type October 2000
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
2. whoispp-query Syntax
The following grammar, which uses BNF-like notation as defined in
[RFC2234] defines the set of acceptable input to a Whois++ server.
As such, it describes the expected structure of a whoispp-query media
type object.
N.B.: As outlined in the ABNF definition, rule names and string
literals are in the US-ASCII character set, and are 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)
Daigle & Faltstrom Informational [Page 2]
RFC 2957 application/whoispp-query Content-Type October 2000
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 =
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 =