RFC 2119 defines key words and phrases used in the IETF’s specifications in order to highlight and clarify the requirements. This RFC specifies the best current practices for the use of key words including when to use them and the practice of using all upper case letters.
The key words MUST, REQUIRED, and SHALL indicate absolute requirements of a specification.
The key phrases MUST NOT and SHALL NOT indicate absolute prohibitions of a specification.
The key words SHOULD and RECOMMENDED indicate items which can be omitted given valid reasons.
The key phrases SHOULD NOT and NOT RECOMMENDED indicate items which can be accepted given valid reasons.
The key words MAY and OPTIONAL indicate features which can be arbitrarily omitted.
Read RFC 2119 at www.ietf.org.