A canonical form is one standardized representation for equivalent values or inputs. It makes comparisons, identifiers, and request signatures consistent even when inputs vary. section 30.3.4 section 6.3.3
Use canonicalization deliberately:
- Assemble request components in a fixed order, lowercase header names, and separate key-value pairs with newlines. section 30.3.4
- Keep the canonical representation strict while allowing decoding to accommodate case mistakes, confused characters, and optional hyphens. section 6.3.3
- Hash large request bodies into a Base64 Digest header instead of placing the complete body in the fingerprint. section 30.3.4
Signing an HTTP request
A PATCH request to /chatRooms/1 can canonicalize its target, host, date, and SHA-256 digest as newline-separated fields, producing a stable payload for a digital signature. section 30.3.4
Table 30.1 Components necessary for fingerprinting a HTTP request (view table figure)
Review the request fields that contribute to a canonical fingerprint. section 30.3.4

