- From: Alex Rousskov <rousskov@measurement-factory.com>
- Date: Sun, 09 Jun 2013 12:49:55 -0600
- To: IETF HTTP WG <ietf-http-wg@w3.org>
- CC: Julian Reschke <julian.reschke@gmx.de>
On 06/09/2013 10:57 AM, Julian Reschke wrote: > On 2013-05-01 07:09, Alex Rousskov wrote: >> And here is a list of requirements that are missing an explicit actor on >> which the requirement is placed. Even though it is often possible to >> guess the actor, most of these should be easy to rephrase to place the >> requirement on the intended actor explicitly (e.g., "A proxy MUST" >> instead of "a header field MUST": >> >>> each parameter name MUST only occur once per challenge > > That's a requirement on the validity of a challenge. Yes. We need to make clear which actors that requirement applies to. > As such it does not depend on the actor. It does. When I originally complained that lots of RFC 2616 MUSTs may be interpreted as if they apply to proxies when they should not and suggested a general rule to excuse proxies from policing traffic, I was told that a better approach is to check each and every MUST to make sure it is clear whether it applies to blind forwarding situations or not. The current HTTPbis specs use that overall approach via the introduction of "sends" vs "generates" difference (thank you!). However, to enable such checks, each MUST has to have an actor with "sends", "generates", or another appropriate keyword. Otherwise, it is not clear whether the proxy is responsible for policing things like challenges with duplicate parameter names. The overhead of checking and adjusting each requirement comes with the approach. You cannot have it both ways. >>> This response MUST include a WWW-Authenticate header >> >>> The 407 (Proxy Authentication Required) response message [...] MUST >>> include a Proxy-Authenticate header field >> >>> information necessary to authenticate a request MUST be provided in >>> the request >> >>> It MUST be included as part of a 407 (Proxy Authentication Required) >>> response. >> >>> It MUST be included in 401 (Unauthorized) response messages > > Similar things can be said about these. Yes, the flaw is similar. > What you seem to ask for is information about what a proxy should do > when it receives a message that already violates a MUST level > requirement. No, I am not asking for that. I am asking to make it possible to determine whether a proxy forwarding a malformed message is in violation of the specs. As discussed above, each requirement has to be clear on that by using appropriate actors and verbs. If you say "server MUST NOT send X", the proxy becomes responsible for not forwarding X. If you say "server MUST NOT generate X", the proxy forwarding behavior is not restricted by that specific requirement. When you say "request MUST NOT have X", the specs become ambiguous: some will claim that a proxy forwarding X is in violation and some will claim that the requirement is not applicable to proxies. Hope this clarifies, Alex.
Received on Sunday, 9 June 2013 18:50:36 UTC