In Redfish specification, about the request header support, it says:
Redfish Services should understand and be able to process the headers in the following tables as defined by the HTTP 1.1 specification if the value in the Service Requirement column is set to "No". Via and Max-Forwards are those marked with "No" in the Service Requirement column. So a Redfish service should understand and be able to process Via and Max-Forwards headers. According to RFC7231 and RFC7230, these two headers are updated by intermediaries (i.e., proxies) in a request chain. What is expected to be done by a Redfish service to support Via and Max-Forwards headers? Should the Redfish service check the value format in the request header and return error messages when the check fails? What else should be done? Thanks.
The spec is silent on these request headers (hence, the "Service should understand ... as defined by the HTTP 1.1 specification..." statement). The handling of these is left to the implementation, and so should follow the semantics in the RFCs.
I assume that the word "should" is a key word in the discussed section: "Redfish Services should understand and be able to process ... is set to "No"". And I would then also assume that "should" means "recommended" or even "optional" in this case. But if the service chooses to supports these "no"-headers, it should do this according to the RFCs. Do you agree Jeff?
At the beginning of each specification there's a section called "Terms and Definitions", which explains terms like "should" and "shall", as we use them to conform to the usage within ISO specifications.
In this case, yes, it's a recommended but optional part of the protocol.