🐾 rigby

On the 1965 Gemini spaceflights, or, how I escaped the Referer header (part 1)

On the 1965 Gemini spaceflights, or, how I escaped the Referer header (part 1)

The first public draft of the HTTP specification, RFC 1945, was published in May 1996. It contained an innocent spelling error: the substitution of “referrer” for “referer” when defining the HTTP header that would be used for sharing the url of the previous page. I have made many similar spelling errors. And according to Wikipedia, spellcheck at the time didn’t recognize either spelling of referrer. So the sin of the HTTP authors was not in making this typo, no. The sin of HTTP is that in the Year of Our LORD 2021 internet browsers continue to send the “Referer” header.

=> https://en.wikipedia.org/wiki/HTTP_referer#Etymology Wikipedia, HTTP Referer

The Gemini Project was the United State’s second series of manned spaceflight missions. Between March 1965 and November 1966, there were an incredible ten (10) manned launches, and no failures, under the Gemini Project. But Gemini was the awkward middle child of two other, more well-known space exploration projects. First was Project Mercury, responsible for putting the first American in orbit. And the second was the Apollo Program, which needs no introduction.

=> https://en.wikipedia.org/wiki/Project_Gemini Wikipedia, Project Gemini

This document is not markdown formatted. This document uses the text/gemini format. It has no in-line links, or even bold or italics marks. Indeed, the only formatting characters can occur in the first couple characters of the line. => for a link, #’s for headers, and “` to start a section of pre-formatted text.

You can argue that “Referer” is now a distinct technical term with a fun bit of etymology. And normally I would fully support creating new words from a mistake. But the Referer header is representative of a greater, fundamental mindset problem. The issue is not that there was a mistake. The issue is that that mistakes never CAN be fixed. The current HTTP/HTML/JS/CSS stack values above all else one thing: backwards compatibility. (I guess security is honestly number 1; browsers will break backwards compatibility in the case of literal malware.) Every inch of the current web stack is full of issues like the “Referer” header, which are agreed to be a bad idea, but are supported because some websites use them.

Project Gemini was preceded by Project Mercury. Mercury capsules had a single astronaut, and were meant to do little more than keep them alive. Gemini capsules, meanwhile, had 2 astronauts; hence the name (Gemini is a derivative of the Latin for twin). Gemini extended the length of possible missions, and had additional maneuverability. The first EVA was performed from a Gemini launch. Apollo missions had three crew members, 2 of which could board the lunar launch shuttle and touch down on the moon.

HTTP was proceeded by a specification called Gopher. Gopher was extremely simple. It allowed for the transport of native file types (e.g. plain text), and a “gohpermap”, which is just a list of links to other pages. There’s no nice way to say this, gopher sucks. You might as well use FTP. But some people still use it. The “gopherspace,” as opposed to the world-wide-web, is inhabited by a number of passionate users.

=> https://en.wikipedia.org/wiki/Gopher_(protocol) Wikipedia, Gopher (protocol)

A user who calls themselves solderpunk was running a “phlog,” a frequently-updated blog using the gopher protocol. Naturally, they started thinking about a protocol that was better than gopher. And then they started writing down an early specification. “Almost accidentally,” Gemini was born.

=> gopher://zaibatsu.circumlunar.space/1/~solderpunk/gemini A summary of posts leading up to Gemini’s inception

Gemini is an internet protocol a little like HTTP. It is also a file type a little like markdown. But it is much simpler than either. It has no headers and no request types. It was designed on the principle of “non-extensibility” – so it is intentionally difficult to add-on the protocol. If Gopher is Project Mercury, and HTTP/HTML is the Apollo Program, then Gemini is Gemini.

=> gemini://gemini.circumlunar.space/docs/faq.gmi About Gemini and the inspiration for this post
=> gemini://gemini.circumlunar.space/docs/specification.gmi The Gemini specification

This post will be continued in part 2, which will detail how I support Gemini on my Thoughts page.

new comment