I think we have a misunderstanding here; I was referring to the syntax in
chapter 20, which I as following in "pedantic-parser" mode: (Copying relevant
syntax lines)
Request = Request-Line *((general-header / request-header / message-header)
CRLF) ...
Response = Status-Line *((general-header / response-header / message-header)
CRLF) ...
request-header = ... User-Agent ...
response-header = ... Server ...
Following these rules, only a request may contain an User-Agent header and
only a response a Server header.
Of course they can be included in the respective other message type (as
needed by the two server initiated requests), but as I wrote, a /very/
pedantic parser would resolve these header lines to the generic
"extension-header" definition.
My proposal is to change the syntax definitions and move the User-Agent and
Server lines to the general-header definition.
Sorry I wasn't that clear initially.
Moving "User-Agent" and "Server" to the general-header is fine with me.