Let’s get the AMAs kicked off on Lemmy, shall we.
Almost ten years ago now, I wrote RFC 7168, “Hypertext Coffeepot Control Protocol for Tea Efflux Appliances” which extends HTCPCP to handle tea brewing. Both Coffeepot Control Protocol and the tea-brewing extension are joke Internet Standards, and were released on Apr 1st (1998 and 2014). You may be familiar with HTTP error 418, “I’m a teapot”; this comes from the 1998 standard.
I’m giving a talk on the history of HTTP and HTCPCP at the WeAreDevelopers World Congress in Berlin later this month, and I need an FAQ section; AMA about the Internet and HTTP. Let’s try this out!
I have no questions, but I want to let people here know that there are two excellent websites related to this: http.cat and http.dog, for looking up HTTP status codes.
For an example, if http.cat/418 doesn’t brighten your day, I don’t think there’s much that can.
I love this. Thank you so much.
You’re welcome! I try to share this with people whenever I can, hoping that it makes someone’s day better. It certainly gives me a lot of joy when I can respond to something with a relevant http cat, though the few people I do it to might be getting a little annoyed.
What’s your take on the fediverse frontier?
I think it’s excellent out here. I was stuck on Reddit for the longest time, and this recent debacle has pushed me to explore the networks at the edge; this feels a lot more like the Internet of old. The analogy of email is apt, I think, with the accounts on multiple servers and the interplay between.
What’s the most impactful 418-related incident you’ve witnessed? I remember a few years ago npm went down and was returning 418 which spawned jokes and chaos across the web
The incident you mention is probably the most impactful, but there’s also the time the Russian military blocked IPs outside Russia by returning 418 instead of the more logical 403.
Yeah, I’ve seen people refer to this as the “fuck off” of response codes, especially during that incident. How does that make you feel?
It’s not up to Mr Masinter or myself to police the usage of anything defined in the standard; if people feel like being assholes regarding the issuance of 418 errors, at least they’re being whimsical assholes.
Could be worse; could be 200 with an error message inside, negating the entire point of error codes. I see that all the time.
Yeah, GraphQL has adopted this practice as a standard and it’s kind of sad.
When I was fixing up a legacy API app at an old job, I realized they did exactly that. I cleared it with my boss and started fixing up our error codes - pretty much all 401, 403, and 422. This blew up an integration with another app that literally threw exceptions on those codes rather than handling them. I died inside as it was my first software dev job. My first rollback of a change as well.
I know russian a bit and jargon for russian word “teapot” is also commonly used as “dummy” or “novice”. 418 for foreigners might have been on purpose there which brings Your April’s fool joke to a nation wide level :)
Thank you for fixing a critical flaw in the original RFC.
What did you think about the Save 418 Movement? Were you involved in it in any way?
My endorsement is at the bottom of that page, in fact. I wasn’t an active campaigner, but a word in favor was the least I could do.
Oops, RTFM. Well, thanks for fighting the good fight with the power of your reputation.
Well there is really only one question…
Pineapple on Pizza?
Out.
Can’t stand pineapple at the best of times, on pizza is another level of wrong.
Yes, obviously. Where else should it be at if not my pizza?
Was RFC 7168 written with Captain Picard’s tea Earl Gray, hot in mind? If not, are follow up modifications planned?
So replicators are kind of a special case: they can make anything already fully prepared, without the need for a brewing command to be sent. It’s possible that by the 24th century, there’s a compatibility layer between Replicator Intermediate Language and HTCPCP, but I’ll leave that to future generations to establish.
I just found out about this on Brodie Robertson’s yt channel! I am not a teapot btw!!
Glad to hear it, you should walk around with a HTTP 418 hat so more people know you’re not a teapot.
But then people would think they are a teapot
Haha, same here! I was so proud I knew what the title was referring to before reading the post. Lol
I need an ELI5 for this I’m a stupid Gen Z
I loved sharing this with my senior who hadn’t seen it before, and it gave our small team a Ggod chuckle one afternoon. Thanks for your creation.
With the absence of a crystal ball, but with excellent inner knowledge, what future standards could you see being implemented in the next 10 years for internet?
As it turns out, one of the Apr 1st RFCs for this year covers AI Sarcasm Detection, but I can see more serious protocols arising for the transfer of AI model data and/or training procedures in the coming years.
I’d also hope ActivityPub reaches Internet Standard level, though it may fall outside the IETF’s scope of operations.
What a fun AMA topic lol. I dont have a question, I’m just glad youre here, spreading the good gospel of your goofy internet standard
I’ve heard that the internet is a series of tubes.
Can you confirm?
I never understood the beef people had with that. The Internet is a series of tubes, of various widths and sizes, with inputs at random points in the stream.
Plumbing analogies are apt.
We’re there any early internet standards you were super bullish on at the time that didn’t get picked up? In retrospect, if it had been adopted do you think it would have had the impact you were hoping for
That’s a tough one: most standards are codified as such because they’re already seeing wide use. The major example of one that’s been worked the other way around is IPv6: it’s been a standard for a very long time, and still doesn’t seem to be seeing adoption.
Of course, I wouldn’t say I was bullish on IPv6. 32 bits is enough for anyone, right.
Is the internet still kept in Big Ben?
You can unilaterally create another status code. What do you create?
I quite like the idea of HTTP 256 Binary Data Follows, which is just 200 OK but you asked for a non-text content type file.
Wasn’t there a new HTTP action recently proposed for “This is a JSON RPC request that we’ve convinced ourselves is actually REST and we’ve been using POST and someone finally pointed out that that was stupid”?
Not a new status code but still vaguely amusing.
What’s the funniest legitimate non-joke standardization detail you’ve come across?
I enjoy that the original draft for the Referer header spelled it wrong, and now we’re all stuck with the typo forever…
Can someone elaborate on this please?
Edit: oh jeez. I’m so used to reading “referer” I didn’t even realize it was a typo.