The rule for a value that goes into an HTTP header (the User-Agent): not blank,
no C0 control character other than tab (so no CR/LF header injection), no DEL,
and nothing above U+00FF. Node's HTTP layer would otherwise throw an opaque
"Invalid character in header content" at request time, and a custom transport
would receive the raw value. Checked by char code so the source stays free of
control bytes.
The rule for a value that goes into an HTTP header (the User-Agent): not blank, no C0 control character other than tab (so no CR/LF header injection), no DEL, and nothing above U+00FF. Node's HTTP layer would otherwise throw an opaque "Invalid character in header content" at request time, and a custom transport would receive the raw value. Checked by char code so the source stays free of control bytes.