BUG/MINOR: cache: also cache absolute URIs
authorWilly Tarreau <w@1wt.eu>
Thu, 17 Oct 2019 07:28:28 +0000 (09:28 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 17 Oct 2019 08:40:47 +0000 (10:40 +0200)
commitccc61d87ae1b4c3d385daecfa9f760530055e4ad
tree1eb56856eb2ddb298ded8f6be9682d3e14f19760
parent9e46496d45ff06317ae8f4f785e6117e5b786f6f
BUG/MINOR: cache: also cache absolute URIs

The recent changes to address URI issues mixed with the recent fix to
stop caching absolute URIs have caused the cache not to cache H2 requests
anymore since these ones come with a scheme and authority. Let's unbreak
this by using absolute URIs all the time, now that we keep host and
authority in sync. So what is done now is that if we have an authority,
we take the whole URI as it is as the cache key. This covers H2 and H1
absolute requests. If no authority is present (most H1 origin requests),
then we prepend "https://" and the Host header. The reason for https://
is that most of the time we don't care about the scheme, but since about
all H2 clients use this scheme, at least we can share the cache between
H1 and H2.

No backport is needed since the breakage only affects 2.1-dev.
src/cache.c