Subject: RFC7616 uri= vs request-target etc

From: Joe Orton <[email-masked]>
Date: Thu, 11 Jun 2020 20:13:14 +0100

Apologies if this has already been discussed, I don't see anything in 
errata and the text is very confused.

https://tools.ietf.org/html/rfc7616#section-3.4 says that the uri= 
parameter sent by the client should be the "effective request URI" as 
defined by 7230 and explicitly not the request-target:

   uri

      The Effective Request URI (Section 5.5 of [RFC7230]) of the HTTP
      request; duplicated here because proxies are allowed to change the
      request target ("request-target", Section 3.1.1 of [RFC7230]) in
      transit.

3.4.3 then says the A2 construction uses request-uri, a term which is 
never explicitly defined (except in RFC2616, which is not referenced):

         A2       = Method ":" request-uri

... unless you assume that request-uri means "effective request URI", 
which is non-obvious.

3.4.6 then defines "request-target" as if *that* was used in e.g. A2 
construction, which it wasn't.

All the examples then use absolute-path in uri=, which is not an 
"effective request URI" (right?), further muddying the waters.

If request-target is supposed to be used in uri=, that makes sense to 
me; strike all mention of "effective URI" and "request-uri", use 
"request-target" everywhere and define that uri= takes the 
request-target.  (This is then basically the same as 2617 as well)

How have current 7616 implementations dealt with this?  Stick with 
2617-style request-target everywhere?

Regards, Jos