diff --git a/fetch.bs b/fetch.bs index 0496eb073..0921ac1c3 100644 --- a/fetch.bs +++ b/fetch.bs @@ -373,21 +373,24 @@ a header list (list), run these steps:
A header consists of a name and value. -A name is a -case-insensitive byte sequence that matches the -field-name token production. A -value is a byte sequence that matches the -field-content token production. -
The definition of value -needs serious work. +
A name is a case-insensitive byte sequence that matches the +field-name token production. -
field-value allows 0x0A and -0x0D bytes which can lead to reparsing issues. +
A value is a byte sequence that matches the following conditions: + +
Has no leading or trailing HTTP whitespace bytes. +
Contains no 0x00, 0x0A or 0x0D bytes. +
The definition of value is not defined in terms of an HTTP token +production as +it is broken.
To normalize a -value, remove any leading and trailing -HTTP whitespace bytes from it. +potentialValue, remove any leading and trailing HTTP whitespace bytes from +potentialValue.
A combined value, given a name (name) and