An implementation is not compliant if it fails to satisfy one or more
of the 'must' requirements for the protocols it implements. An
implementation that satisfies all of the 'must' and all of the
'should' requirements for its features is said to be 'unconditionally
compliant'; one that satisfies all of the 'must' requirements but not
all of the 'should' requirements for its features is said to be
'conditionally compliant'.
1.3. Specifications
Not all of the functions and features of the CGI are defined in the
main part of this specification. The following phrases are used to
describe the features that are not specified:
'system-defined'
The feature may differ between systems, but must be the same for
different implementations using the same system. A system will
usually identify a class of operating systems. Some systems are
defined in section 7 of this document. New systems may be defined
by new specifications without revision of this document.
RFC 3875 CGI Version 1.1 October 2004
'implementation-defined'
The behaviour of the feature may vary from implementation to
implementation; a particular implementation must document its
behaviour.
1.4. Terminology
This specification uses many terms defined in the HTTP/1.1
specification [4]; however, the following terms are used here in a
sense which may not accord with their definitions in that document,
or with their common meaning.
'meta-variable'
A named parameter which carries information from the server to the
script. It is not necessarily a variable in the operating
system's environment, although that is the most common
implementation.
'script'
The software that is invoked by the server according to this
interface. It need not be a standalone program, but could be a
dynamically-loaded or shared library, or even a subroutine in the
server. It might be a set of statements interpreted at run-time,
as the term 'script' is frequently understood, but that is not a
requirement and within the context of this specification the term
has the broader definition stated.
'server'
The application program that invokes the script in order to
service requests from the client.
2. Notational Conventions and Generic Grammar
2.1. Augmented BNF
All of the mechanisms specified in this document are described in
both prose and an augmented Backus-Naur Form (BNF) similar to that
used by RFC 822 [13]. Unless stated otherwise, the elements are
case-sensitive. This augmented BNF contains the following
constructs:
name = definition
The name of a rule and its definition are separated by the equals
character ('='). Whitespace is only significant in that
continuation lines of a definition are indented.
RFC 3875 CGI Version 1.1 October 2004
"literal"
Double quotation marks (") surround literal text, except for a
literal quotation mark, which is surrounded by angle-brackets ('<'
and '>').
rule1 | rule2
Alternative rules are separated by a vertical bar ('|').
(rule1 rule2 rule3)
Elements enclosed in parentheses are treated as a single element.
*rule
A rule preceded by an asterisk ('*') may have zero or more
occurrences. The full form is 'n*m rule' indicating at least n
=3= |