]> git.kaiwu.me - nginx.git/commit
Proxy: escape explicit space in URI in default cache key.
authorRoman Arutyunyan <arut@nginx.com>
Mon, 20 Nov 2017 17:50:35 +0000 (20:50 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Mon, 20 Nov 2017 17:50:35 +0000 (20:50 +0300)
commit6754a404669b527340dd74270289da6adfc6302f
treef9d63f90d689ea560f0c9660dcfad84f92fcd34e
parent891908cd0cdf72fca7d4b3de4a8a6fa3602e5cf7
Proxy: escape explicit space in URI in default cache key.

If the flag space_in_uri is set, the URI in HTTP upstream request is escaped to
convert space to %20.  However this flag is not checked while creating the
default cache key.  This leads to different cache keys for requests
'/foo bar' and '/foo%20bar', while the upstream requests are identical.

Additionally, the change fixes background cache updates when the client URI
contains unescaped space.  Default cache key in a subrequest is always based on
escaped URI, while the main request may not escape it.  As a result, background
cache update subrequest may update a different cache entry.
src/http/modules/ngx_http_proxy_module.c