Hacker News new | past | comments | ask | show | jobs | submit login

Does it has functions for sending data, i.e. submitting forms? I'm curious if gopher could be a sufficient lightweight web protocol for all normal real life tasks including internet banking and shopping.



No, it's entirely read-only. That's probably the main reason (outside of the University of Minnesota trying to charge licensing fees for using the protocol) that HTTP ended up replacing it. The other reason is that Gopher without non-canonical extensions can only transmit plaintext, images and binary files.

Gopher is extremely simplistic to implement because it basically can only do GET requests (but without all the header overhead).

All you need to do to retrieve a document is open a TCP connection and send the path you want to retrieve suffixed by CRLF. The server will then just return the requested data. For full text search (the only serverside expected feature for type 7 documents), add a tab character and then the search string.

The only other special feature on the client are Gopher menus which are a dedicated response type (type 1). They're basically the closest you get to rich text on Gopher - they're formatted text files which contain reference links to other addresses on Gopher.

It's all in all easy to see why Gopher got replaced. That said, I still recommend experimenting with it. It's very much a relic of a different time period, but that doesn't have to be a bad thing. HTTP and the general web stack has become rather bloated over the years due to its versatility. Gopher is laserfocused in its simplicity which gives it its own charm.


You could send search requests. The reason I remember this is because I was writing a Gopher server which had a built-in search engine.

I say "I was building" rather than "built" because two things happened: someone showed me a graphical web browser that actually was usable, and whomever owned Gopher wanted to charge money for using v2 of the protocol (I think?). So I ditched all the gopher code I had written and made an HTTP-server instead.

update: I think it was Goper+, not Gopher v2 which was the new version


Not natively, though some have heavily abused search selectors for form input: https://github.com/michael-lazar/flask-gopher/blob/master/de...

For sending data a Gopher server would need to be paired with an FTP server.


No. The protocol seems very simple: connect, provide a document reference, server responds with the document, and the connection is closed. Document may contain references to other documents.

Imagine HTTP with only GET, no headers, no request bodies. RFC 1436 explicitly says:

> No state is retained by the server.


Huh. The original HTTP (later renamed HTTP/0.9 in order to differentiate it from HTTP/1.0) is really quite similar: it appears to basically be gopher with an additional method (always GET) prepended to the document reference; no request headers, no response status code nor response headers.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_...


That's Ok. I wouldn't mind viewing a catalogue in a lo-fi read-only browser, then sending my order by e-mail using a dedicated e-mail client app.


I remember doing exactly this. An online bookstore had you either call to order or send an email using PGP to order a book with a credit card.

Reminds me that in 1996-7 we were also usually paying for items by mailing checks on eBay's AuctionWeb.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: