[PATCH] Core: use uppercase hexadecimal digits for percent-encoding
Maxim Dounin
mdounin at mdounin.ru
Tue Jul 1 01:15:06 UTC 2014
Hello!
On Mon, Jun 30, 2014 at 04:41:26PM +0400, Valentin V. Bartenev wrote:
> On Friday 27 June 2014 21:57:54 Maxim Dounin wrote:
> > Hello!
> >
> > On Thu, Jun 26, 2014 at 11:40:27PM -0700, Piotr Sikora wrote:
> >
> > > # HG changeset patch
> > > # User Piotr Sikora <piotr at cloudflare.com>
> > > # Date 1403851163 25200
> > > # Thu Jun 26 23:39:23 2014 -0700
> > > # Node ID 177382006b7d7a421688831d5793b2e417074b48
> > > # Parent 42114bf12da0cf3d428d0e695139f5366cbd0513
> > > Core: use uppercase hexadecimal digits for percent-encoding.
> > >
> > > RFC3986 says that, for consistency, URI producers and normalizers
> > > should use uppercase hexadecimal digits for all percent-encodings.
> > >
> > > This is also what modern web browsers and other tools use.
> > >
> > > Using lowercase hexadecimal digits makes it harder to interact with
> > > those tools in case when use of the percent-encoded URI is required,
> > > for example when $request_uri is part of the cache key.
> > >
> > > Signed-off-by: Piotr Sikora <piotr at cloudflare.com>
> > >
> > > diff -r 42114bf12da0 -r 177382006b7d src/core/ngx_string.c
> > > --- a/src/core/ngx_string.c Mon Jun 16 19:43:25 2014 +0400
> > > +++ b/src/core/ngx_string.c Thu Jun 26 23:39:23 2014 -0700
> > > @@ -1407,7 +1407,7 @@ ngx_escape_uri(u_char *dst, u_char *src,
> > > {
> > > ngx_uint_t n;
> > > uint32_t *escape;
> > > - static u_char hex[] = "0123456789abcdef";
> > > + static u_char hex[] = "0123456789ABCDEF";
> > >
> > > /* " ", "#", "%", "?", %00-%1F, %7F-%FF */
> >
> > I can't say I like this change. I've considered this a while ago,
> > and decided to keep it as is. This preserve compatibility with
> > what nginx used to do for years. And it also looks like Apache
> > does the same.
> >
> > Any other opinions?
> >
>
> I prefer to fix this instead of keeping it for another few years.
>
> Uppercase digits also look more distinctly, since all other parts
> of path are usually in lowercase.
Ruslan? Igor?
--
Maxim Dounin
http://nginx.org/
More information about the nginx-devel
mailing list