Parses a header value into elements. Parse errors are indicated as
RuntimeException
.
Some HTTP headers (such as the set-cookie header) have values that can be decomposed into multiple elements. In order to be processed by this parser, such headers must be in the following form:
header = [ element ] *( "," [ element ] ) element = name [ "=" [ value ] ] *( ";" [ param ] ) param = name [ "=" [ value ] ] name = token value = ( token | quoted-string ) token = 1*<any char except "=", ",", ";", <"> and white space> quoted-string = <"> *( text | quoted-char ) <"> text = any char except <"> quoted-char = "\" char
Any amount of white space is allowed between any part of the header, element or param and is ignored. A missing value in any element or param will be stored as the empty {@link String}; if the "=" is also missing null will be stored instead.
@param buffer buffer holding the header value to parse
@param cursor the parser cursor containing the current position and the bounds within the buffer for the parsing operation
@return an array holding all elements of the header value
@throws ParseException in case of a parse error