Directive assembly order
Each active field or checkbox contributes one directive to the header string in a fixed presentation order: visibility directives (public/private) first, then age directives (max-age, s-maxage), then behavior directives (no-cache, no-store, must-revalidate, immutable), joined with ', '. This ordering exists only for readability - caches read Cache-Control as an unordered set of directives, so it has no effect on how the header is interpreted. Directives left blank or unchecked are omitted entirely rather than emitted with a default value.