2019-04-08 A Plan for Gopher

@horsemans recently posted a basic first-pass of a Gopher/2 protocol.

@horsemans

Gopher/2 protocol

@julienxx linked @solderpunk’s Pondering what's inbetween Gopher and the web.

@julienxx

@solderpunk

Pondering what's inbetween Gopher and the web

@tomasino posted Gopher-II: The Next Generation Gopher WWIS and recommended it “as a starting point for any formal RFC updates since it so thoroughly encapsulates everything that has come before.”

@tomasino

Gopher-II: The Next Generation Gopher WWIS

I don’t think I have a concise list of features of what I want from Gopher:

1. UTF-8

2. TLS

3. No dot at the end of the transmission, just hang up

4. and a new item type „w“ where you can post text („write“ or „wiki“)

I have implemented all of this for my site, see Gopher Wiki.

Gopher Wiki

I think we could simply at the end of Encrypted Gopher and scroll down to the examples involving `gnutls-cli`, which simply replaces `telnet`. Adding TLS support to VF-1 and `gopher.el` on the client side was similarly easy.

Encrypted Gopher

Let’s just make TLS mandatory, end of story. It was easy to add.

Right now, TLS support for VF-1 and `gopher.el` is implemented as a mode. The user switches TLS mode on or off. The result is simply an error message if the client’s mode and the connection type don’t match. If the client is not in TLS mode and it connects to a TLS encrypted server, it’s probably going to get a timeout. If the client is in TLS mode and it connects to an unencrypted server, it’s probably going to get an error. The client simply catches those errors and tells the user to switch TLS mode on or off.

If you want to look at an example, see the exception handling in VF-1. (There, “battloid mode” means TLS is enabled.)

the exception handling in VF-1

What this means, most importantly, is that connecting to port 70 with TLS mode enabled means the client expects a TLS encrypted connection to the server even on the standard port.

Of course, clients are free to do auto-detection, or let users know that a mode change is required, but generally speaking, no automatic switching between safe and unsafe browsing, no following links from “green closed padlock” world to “red open padlock” world by default works well for me.

​#Gopher