From: Jeff King <peff@peff.net>
To: Thomas Rast <trast@student.ethz.ch>
Cc: git@vger.kernel.org, jstpierre@mecheye.net
Subject: Re: URL decoding changed semantics of + in URLs
Date: Mon, 26 Jul 2010 11:40:42 -0400 [thread overview]
Message-ID: <20100726154041.GA18762@coredump.intra.peff.net> (raw)
In-Reply-To: <201007231518.31071.trast@student.ethz.ch>
On Fri, Jul 23, 2010 at 03:18:30PM +0200, Thomas Rast wrote:
> As pointed out by Jasper St. Pierre on #git, it is no longer possible
> to clone
>
> git://git.gnome.org/gtk+
>
> because your 9d2e942 (decode file:// and ssh:// URLs, 2010-05-23)
> decodes + characters in URLs to spaces in the http style. It was
> later fixed by ce83eda (url.c: "<scheme>://" part at the beginning
> should not be URL decoded, 2010-06-23) but the later part of the url
> still decodes + as space.
>
> The tests that go along with the commit make it clear that it was an
> intended change. But the interesting thing is, I cannot find any
> reference in any RFC that + must have this meaning. In particular,
>
> http://www.ietf.org/rfc/rfc2396.txt
>
> doesn't say much about + and the only escaping defined is the usual
> %xx style. So is there a standard that mandates this, or was it just
> a well-meaning but unnecessary backwards incompatible change?
Sorry for the slow reply. I am in the middle of moving and just got a
usable machine running.
I think it is well-meaning but unnecessary. That is, I think %-decoding
is probably still a good idea, and I just dragged '+'-decoding along out
of cluelessness. I thought I cross-checked with what curl was doing to
http URLs, but now I can't even get it to do anything but pass the path
component literally to the webserver. So I'm really not sure what I
tested before.
As Jasper noted, "+" is a reserved character, which means "gtk+"
probably _should_ be escaped. But clearly it doesn't happen in practice,
and I am more interested in not breaking current use than in nitpicking
with a standard.
So I agree with the spirit of your patches, and reading over your v2, it
looks fine to me, but I didn't do any extensive testing.
-Peff
next prev parent reply other threads:[~2010-07-26 15:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-23 13:18 URL decoding changed semantics of + in URLs Thomas Rast
2010-07-23 13:21 ` Thomas Rast
2010-07-23 14:10 ` Ævar Arnfjörð Bjarmason
2010-07-23 14:25 ` Jasper St. Pierre
2010-07-23 21:23 ` [PATCH] Do not unquote + into ' ' " Thomas Rast
2010-07-23 22:20 ` Ævar Arnfjörð Bjarmason
2010-07-23 22:26 ` Junio C Hamano
2010-07-23 23:04 ` Thomas Rast
2010-07-24 14:49 ` [PATCH v2] " Thomas Rast
2010-07-31 21:18 ` Jasper St. Pierre
2010-07-31 21:33 ` Thomas Rast
2010-08-06 10:46 ` Ralf Ebert
2010-07-26 15:40 ` Jeff King [this message]
2010-07-26 17:57 ` URL decoding changed semantics of + " Ævar Arnfjörð Bjarmason
2010-07-26 18:22 ` Jasper St. Pierre
2010-07-26 18:30 ` Matthieu Moy
2010-07-26 18:35 ` Ævar Arnfjörð Bjarmason
2010-07-26 18:44 ` Jasper St. Pierre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100726154041.GA18762@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=jstpierre@mecheye.net \
--cc=trast@student.ethz.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).