Overbite - Gopher Client For Android
gopher.floodgap.com
gopher.floodgap.com
No. Gopher is not awesome. It's a terrible protocol and it deserves to die.
Why it's a terrible protocol?
Let's be honest, you just need to know how are you going to deal with the file, not what kind of file it is.
You need something along the lines of - this resource is readable text - this resource is binary data - this resource is an image
How you are going to deal with it is a function of what kind of file it is, so to know the former you need to know the latter. The internet Media Type system is far from perfect, but much better.
> You need something along the lines of - this resource is readable text - this resource is binary data - this resource is an image
If that was really all you needed, you wouldn't need the subtypes in the internet Media Type system, while experience in the real world has shown that you do need that information.
http://www.wumpus-cave.net/2013/10/27/why-gopher-is-awful/
Once I did a little research and wrote it all out, Gopher actually came out worse than I thought. Even if it were brought up to Gopher+ specifications (which haven't been implemented by anyone in 20 years), it would still be way behind HTTP/1.1 in terms of fixing design flaws.
And if the TCP sliding window is an issue for you, why not fix TCP?
Why should the server send any kind of header?
Doesn't TCP do checksums, already?
Fix sliding window? I don't think you understand TCP. This is an optimization to TCP to prevent the need to ACK every packet. It means fewer bytes on the wire and less CPU load for TCP processing, while also maintaining a respectable degree of reliability.
TCP checksums are not sufficient for data streams of more than a few kB.
gopher://gopher.floodgap.com:70/0/gopher/relevance.txt
In a way google serp, e-mail, twitter already use this simplified UI - now if only we could unify it somehow.
One way of doing this would be by using console browsers to interface the web, or set your browser to use 1 font and style and no images. One of these browsers, Elinks 0.12pre6 has gopher as compile time option as added benefit.
Aonther problem with Gopher is that it doesn't appear to support encryption and compression. I remember the pipe and slash symbols 'spinning' while waiting for a large plain text document to complete downloading in the old days. So the "resource lite" argument doesn't fly completely.
So perhaps the best option is to use simplified and structured gopher like menu-ing system using html, something like markdown did for html as is suggested... but why then not put Gopher to sleep for even and start a www-less project?
There really isn't a significant difference between the two. They both operate over a single TCP channel. HTTP/1.1 has a slightly higher header size, but it's not even half a kilobyte.
The only real difference is that HTTP usually serves up rich HTML, which contains all sorts of graphics and JavaScript toys and other bandwidth-hogging transmissions. If we limited HTTP to using HTML 3.2, no JavaScript, and only the occasional 2kb gif, it'd be resource lite, too.
FYI--I wrote the Apache::GopherHandler Perl module for running a Gopher server under Apache2, which I now consider to be mostly a waste of time. (https://metacpan.org/pod/Apache::GopherHandler)
http://gopher.floodgap.com/gopher/gw?gopher://gopher.floodga...
* It closes the connection after every request, making poor use of TCP sliding window
* Binary file transfers are finished by the server closing the connection. There's no end-of-file marker or Length header.
* No provisions for caching
* A single ASCII letter identifies all file types
It's just a bad protocol design. HTTP/0.9 had many of the same problems, but that's not where HTTP is anymore. Gopher+ solves the single-letter identifier problem by using MIME types, but none of the other problems above. Not that anybody has ever implemented Gopher+, anyway.
Both the Overbite clients [2] and the Bucktooth server [3] support Gopher+. Pygopherd [4] also implements Gopher+. Many other clients support it as well; see a partial list in Floodgap's guide on using web browsers to access Gopherspace [5].
[1] gopher://gopher.floodgap.com/0/gopher/tech/gopherplus.txt
[2] gopher://gopher.floodgap.com/1/overbite
[3] gopher://gopher.floodgap.com/1/buck
[4] gopher://gopher.quux.org/0/devel/gopher/pygopherd/About%20Pygopherd.txt
[5] gopher://gopher.floodgap.com/0/gopher/wbgopher
For Elinks gopher support one needs to compile from source with the gopher option (it's not on by default). brew on osx doesn't download and compile the last 0.12 beta version (which includes gopher support). after: "brew upgrade elinks" it says: "elinks-0.11.7 already installed"
In the latest Ubuntu does install 0.12pre6 but it doesn't open gopher urls. Elinks documentation says: "It is still very experimental and the CSO phone-book protocol is not implemented. Default: disabled" http://chals.sdf.org/gopher.cgi/phlog/2012/10-14-12/
Lynx works out of the box though, but I prefer elinks as it is the last (to my knowledge) updated console browser and it has features like ipv6, scripting and some javascript support.
One can always use OverbiteFF plugin or use the gopher proxies.