AFAICT, the more recent Gopher spec 4266 wasn’t done out of a desire to update the gopher spec. Instead, the RFC people simply wanted the original all-up URL spec to become “historic”; that meant all of the URI schemes had to find a home in some new standards-track document. The RFC people are picky that way 😊
So don’t read too much into why the new doc kept the %09 instead of transitioning to a ?.
Personally, I think we should NOT use a ? as a separator between the selector and the search string. The Gopher spec is pretty clear that you can put almost any kind of character into the selector, question marks included. Other stuff that’s under discussion is dubious about whether it’s standards-compliant or not; splitting the URL at a ? is definitely not standards compliant
The split should happen at the %09, not the ?
Sent from Mail for Windows 10
On Mon, Oct 28, 2019 at 09:43:04PM -0400, Michael Lazar wrote:
> And then that got me wondering, so I booted up some old web browsers:
> - Internet Explorer 2.0 (Windows 95)
> - Netscape Navigator 220.127.116.11
> - NCSA Mosaic 2.7b6
> And sure enough, all of these browsers display gopher URLs the same way that
> Lynx does, with a "?" to separate the search string from the selector. It looks
> like the special search string parsing is only performed if the URL is of type
> 7. So it appears that there is a historical precedence for it, at least in the
> world of 90's web browsers.
>  https://lynx.invisible-island.net/lynx_help/lynx_url_support.html#gopher_url
Interesting finds! RFC 4266 dates to a surprisingly recent November
2005, so at the time that the likes of IE 2.0 had to decide how to solve
this issue, they cannot possibly have referred to it. If Lynx adopted
this syntax earlier than RFC 4266, then I think they can be cut some
slack on using ? intead of %09.
To be honest, the use of ? makes a lot more sense to me than the %09
specced in RFC 4266. Using ? to separate queries from paths is not a
HTTP(S) thing, it is part of the generic URI specification in RFC 3986.
I don't see why RFC 4266 didn't simply make this explicit.
Were those old browsers also putting the item type at the front of the
path? It seems odd that RFC 4266 would codify *that* exising practice
but contradict the use of ? to separate queries.
Sadly, it doesn't seem practical at this point to reject %09 in favour
of ?, because ? is now widely used by Gopher CGI applications in a
totally different way. However, it does seem like it might be prudent
for clients given a URL with item type 7 to interpret ? as a query