- From: Phillip Hallam-Baker <hallam@gmail.com>
- Date: Fri, 1 Feb 2013 17:46:42 -0500
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: "Roy T. Fielding" <fielding@gbiv.com>, Bjoern Hoehrmann <derhoermi@gmx.net>, Zhong Yu <zhong.j.yu@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
- Message-ID: <CAMm+LwgpmXoAzaPkkKMF_y4SL_by-jz2n8_13OocwFqKxKD+xg@mail.gmail.com>
On Fri, Feb 1, 2013 at 5:37 PM, Julian Reschke <julian.reschke@gmx.de>wrote: > On 2013-02-01 22:51, Phillip Hallam-Baker wrote: > >> >> >> On Fri, Feb 1, 2013 at 4:08 PM, Roy T. Fielding <fielding@gbiv.com >> <mailto:fielding@gbiv.com>> wrote: >> >> On Feb 1, 2013, at 12:34 PM, Julian Reschke wrote: >> >> > On 2013-02-01 20:07, Bjoern Hoehrmann wrote: >> >> * Julian Reschke wrote: >> >>> On 2013-02-01 19:37, Zhong Yu wrote: >> >>>> If user clicks a URL http://example.com//abc, the browser >> should send >> >>>> >> >>>> GET //abc HTTP/1.1 >> >>>> Host: example.com <http://example.com> >> >> >>>> >> >>>> However the latest bis draft seems to forbid "origin-form" to >> start with "//" >> >>>> ... >> >>> >> >>> Is this a valid URI? >> >> >> >> http://www.websitedev.de/temp/**rfc3986-check.html.gz<http://www.websitedev.de/temp/rfc3986-check.html.gz>says yes. >> Per 3986: >> >> >> >> URI = scheme ":" hier-part [ "?" query ] [ "#" >> fragment ] >> >> hier-part = "//" authority path-abempty >> >> ... >> >> path-abempty = *( "/" segment ) >> >> ... >> >> segment = *pchar >> > >> > Indeed. This appears to be an edge-case, but still... >> >> Back in the really really early days of the Web, // would >> indicate a gateway (essentially, an open proxy). TimBL said that >> the original idea was for many more layers than that, e.g. >> >> ////first///second//third/path >> >> as a form of routing. Needless to say, that did not catch on. >> >> > Roy, do you recall whether there's a reason why we would want to >> rule out a path starting with "//"? >> >> No, it is an accident of the transition to new URI ABNF and >> should be raised as an issue. There are several different ways to >> fix it, depending on how lenient we want to be with parsing. >> >> ....Roy >> >> >> There was another reason, it made it possible to use ftp and http URLs >> interchangeably. >> >> I remember Robert Cailliau raising the issue at the leaving party for >> TimBL from CERN and he admitted he didn't really have much of a good >> answer. >> >> >> I seem to recall that //domain/path was already in use at the time in >> NFS and AFS like things and the web was following the same scheme. >> >> If you were using the Web browser prior to there being HTTP you would >> have been using URIs of the form //afs.cern.ch/path >> <http://afs.cern.ch/path> >> >> >> So it would be natural to make them into: >> >> file://afs.cern.ch/path <http://afs.cern.ch/path> >> >> >> >> The main reason for keeping it at the time was that it provided a clear >> visual distinction between a URL and a URN and the difference between >> them was that a URL was an identifier that was relative to a DNS host >> name and a URN was anything that was not a URL. >> >> I think that was actually a good idea. The three schemes that had DNS >> domain names in them, file, http and ftp, all had the same >> method://domain:port/stem pattern. >> ... >> > > Yes. > > But that doesn't seem to have anything to do with what we discuss here: a > *path* starting with "//". > > Best regards, Julian > Ugh, hate that idea. The reason for having the double slash on the host name was so that it was possible to distinguish URI fragments that were relative to a scheme "//" , a host "/" or a directory (anything else). Could be wrong but I would be very surprised if existing code didn't barf up a path starting //. I certainly think it should do. -- Website: http://hallambaker.com/
Received on Friday, 1 February 2013 22:47:10 UTC