Match ASCII letters without folding every byte
01DNS, the Domain Name System, compares ordinary name labels without distinguishing uppercase and lowercase ASCII letters. ASCII is a basic character encoding. A label is one component of a name, such as Lab in Lab.Example.
Separate one-byte labels containing decimal221 (hexDD) and decimal253 (hexFD) do not match. Applying an international or locale-specific case conversion here would change the DNS comparison rule.
Source for this drawing: RFC 4343 · Read RFC section 3 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Only ASCII letter pairs gain this equivalence; different ordinary letters and other unequal octets remain different.
- Uppercase ASCII octets 0x41–0x5A MUST match their lowercase partners 0x61–0x7A, and vice versa. An octet also matches itself. Octet means an eight-bit byte.
- The ASCII comparison rule is not general Unicode or locale-dependent case conversion. For example, byte 0xDD does not match 0xFD, although another character system can interpret them as a letter-case pair.
- Case folding is one possible implementation, not a required algorithm. This rule applies to original type-0 labels, directly or after a compression pointer is resolved; it is not a rule for every extended label type or arbitrary DNS record data.
Examples are fictional absolute names ending at the root dot. The case-comparison rule is not CLASS-dependent (§3.3). A matching name is not proof that a server, user or application is trusted.
Read the RFC section ↗