This is an industry standard (as far as RFCs can be considered standards... ), defined in 1997 in RFC-2119: Key words for use in RFCs to Indicate Requirement Levels.
From the abstract of this document:
In many standards track documents several words are used to signify
the requirements in the specification. These words are often
capitalized. This document defines these words as they should be
interpreted in IETF documents. Authors who follow these guidelines
should incorporate this phrase near the beginning of their document:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
It's possible further keywords were added to later RFCs, but I always refer to 2119.