Scheme Section 2 quibble

On Mon, 16 Nov 2020 23:39:19 +0000
acdw <acdw at acdw.net> wrote:
> > The authority component is preceded by a double slash ("//") and is
> > terminated by the next slash ("/"), question mark ("?"), or number
> > sign ("#") character, or by the end of the URI.  
> 
> Meaning that the scheme does not, in fact, include a "//" at the end,
> but rather that "//" is a separator between the scheme and the
> authority.  In fact, to actually encode a scheme-agnostic URL in a
> link, an author needs to write "//example.com/path".  For an example,
> see the links in flounder.online.
> 
> I bring this issue up because there have been instances of geminauts
> linking like this:
> 
> => example.com/path An example link  
> 
> Which resolves, not to gemini://example.com/path, but
> to ./example.com/path on the current server.

This is wrong, even by web standards, when referencing to a different
host, one must explicitly write a valid URL, you DON'T see:

>	<a href="example.tld/index.html"></a>

> To resolve this confusion, I propose is to either
> 
> (a) strip the "//" (and probably ":", though I found no particular
> reference to it in the spec) from the "scheme of gemini:// is
> implied" portion of the above paragraph, or

In my humble opinion, I think that "//example.tld/" is an
implementation specific hack and has no place in the protocol, a URI
like that is invalid and should not be respected by servers, what
should actually work is providing authority and path like so:
"example.tld/path/", this is discouraged by RFC 3986 (section 4.5) but
it actually makes sense if context is defined, in this case, context is
gemini so a scheme of gemini is implied.

Also, this is the default behavior for web browsers implying scheme of
http(s), which I think is acceptable and convenient behavior, so I
agree with you on that, assuming that's what you meant.

> (b) remove the scheme bit altogether.  I personally prefer this
> because it's maximally precise.

The scheme bit in requests allows for proxies to work, for example,
when I host a proxy instance at "gemini://raiz.proxy/" someone sends a
request of "https://example.tld/", my proxy can fetch the page and send
it back to the client through gemini, I think that's why it's there.

Perhaps there are many many other use cases for this that I haven't
thought of.

---

Previous in thread (2 of 31): 🗣️ colecmac (a) protonmail.com (colecmac (a) protonmail.com)

Next in thread (4 of 31): 🗣️ Sean Conner (sean (a) conman.org)

View entire thread.