@rdlowrey: See your quote, it is about *differing field names*. My focus is not on different but on same-named field names, which is not touched by your quotation.

To make this a more concrete change straight away, as this is hard to follow:

`HeaderValuesInterface` implies such "field-name : field-value" pairs but the meaning is different as standardized in RFC 2616.

Suggested change is to use the more correct term `MessageHeaderFieldsInterface` to represent the header-fields header-lines. I also think this is exactly what you want to express with that interface.

This would also allow to have/change order, e.g. to deal with Cookies or other non-standard stuff which is perhaps not so bad for a robust implementation.