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!
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.
You awaken my nostalgia, curiosity and sense of adventure when you say “explore the networks at the edge”. Are there any other networks than lemmy / mastodon that you would suggest checking out?
Internet Relay Chat’s been one of those things that’s always felt out on the edge. I’ve been on EFnet since perhaps '03, and it’s a lot quieter than it was…
With people moving en masse away from the centralized sites and their Firebase-implemented chats, we may see a pick up in traffic on the IRC networks, which would be good to see.
What are some interesting channels on EFnet? I basically grew up on Foonetic, but moved to Slashnet when #xkcd did. I don’t pay near as much attention to IRC as I used to, but would like to change that
I haven’t been exploring in the depths of EFnet in …many years. I’m confined to the programming-related channels I found in the Way Back When, nowadays: at the moment, #c is probably the most active and it’s almost all old-timers.
Are you tingly anywhere?
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.
Every once and a while I’d just like to see 200 get some love, but no. It’s all 404 this, 502 that.
I’m just “OK”. It’s like being the middle child of response codes.
username checks out
200 is probably the most common status no? Many successful responses will give 200 in the backend
OK
Do you regret adding it, or with the knowledge you have today, would you still add the 418?
Since a bunch of languages have not implemented it, or/and has long discussions about it:
https://github.com/dotnet/runtime/issues/15650
https://github.com/golang/go/issues/21326
https://github.com/nodejs/node/issues/14644
https://github.com/psf/requests/issues/4238
https://github.com/aspnet/HttpAbstractions/issues/915You’d have to catch up with Mr Masinter to get his opinion on adding error 418, I’m afraid; that piece of the business wasn’t my work.
I’m happy it’s there though: it may have sparked flamewars, but at this point what hasn’t. It does bring somewhat of that sense of humanity to the whole enterprise of working on the Internet.
I remember when I learned about this, I was working on an absurdly large project on my own. I was lost in all the details and losing hope of ever finishing. I was working on the backend API when I learned of this and took the time to implement the 418 response. It felt silly and brought the fun back to the project.
I remember when I first learned of error 418 and it did really help me understand that the Internet as we know it was made and shaped by regular people with senses of humor. Helped make it seem a bit less daunting/intimidating to understand.
It reminds me of how the Network Port 666 is specifically reserved for doom, always love Easter eggs like that in officially used protocols.
I’m just finding out about this trivia now but I’m a big fan
Sheesh, some people have no sense of humour.
Personally I don’t have any problems with it (if that was directed at me) - I’ve added 418 as “unhandled exception code” response to a bunch of applications, so I can easily differentiate whether my application is throwing an error, or whether it’s some middleware gateway AWS io-thing
I was just curious what OP thought about it, since in the early days it wasn’t uncommon to add goofs or easter-eggs into software, but nowadays not done so much… and apparently the “HTTP Working Group” doesn’t like it either… So I was curious whether OP though in hindsight whether it should’ve been added or not
How can it be unhandled? It’s right there in the song, just before the spout!
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.
Hear hear
Yes, obviously. Where else should it be at if not my pizza?
Getting really tired of this meme
I don’t have any questions but holy shit this is so cool.
I need an ELI5 for this I’m a stupid Gen Z
You know sometimes you click on a link and it says “404 not found?” 404 is an HTTP status code. basically when you click on a website your browser makes an “HTTP request” to that website to get the web page, and it’ll respond with a code to tell the status. 2xx is ideal, since it means OK. 4xx means it’s an error on your end. (404, you requested a nonexistent link.) 5xx means it’s a server error.
This person made 418, a status code for “I’m a teapot”. It was intended as an april fools joke but it’s used sometimes for when the server doesn’t want to handle a request from the client.
I need one too and I’m a stupid Gen Y
As a late millennial and a programmer, I’ve got you.
So when you request a web page, before anything else, the server gives you a 3 digit status code.
100s means you asked for metadata
200s mean it went ok
300s means you need to go somewhere else (like for login, or because we moved things around)
400s mean you messed up
500s mean I messed up
So this is in the 400s. Each specific code means something - you’ve probably seen 404, which means you asked for a page that isn’t there. And maybe 405, which means you’re not allowed to see this
418 means you asked for coffee, but I’m a teapot
I can’t say enough how amazing your explanation was. Im not a programmer but I have worked on websites (self taught) and I never knew this. Thank you!
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 :)
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
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.
I’d be happy if we’d just accepted “referer” as the correct spelling for everything, but instead we have the “Referrer-Policy” header, so now I need to check the correct spelling for anything involving referring…
I do sort of like the idea that because we want to keep backwards compatibility on software we just change the language instead since that’s easier.
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.
The number one question I would ask about HTTP would be: Why was the “Referer” header initially added and why wasn’t it removed from standard to this day. In my opinion the server, I’m going to, should never know where I came from.
I’ve just done some quick browsing to see if there’s a written-down motivation for Referer existing, and there’s this on the Wikipedia: “Many blogs publish referrer information in order to link back to people who are linking to them, and hence broaden the conversation.”
Which I guess makes sense, in the context of the original use of HTTP as an academic publishing protocol, but it’s gained cruft and nefariousness since wider adoption came about.
There are good arguments for stripping Referer from the standard, and yours is one of the most cogent; if Referer is still a thing in another 30 years, I’d be surprised.
I hope that user agent will be gone too. It does nothing except demand that you install chrome or spy on you
In the early days of hypertext there was also a lot of talk of “the semantic web”, where one proposal was that all links should be two-way, refer may have been a compromise to let people try to implement that on top of the one-way HTTP/HTML
Follow-up question. Shouldn’t it be spelled “referrer”?
It should, certainly. But the original draft introducing the header had a typo, and now we’re all stuck with it.
Is the internet still kept in Big Ben?
Yes, unless Jen needs to borrow it for a presentation.
I’m actually going to that conference! What’s the title of your talk? I’ll be sure to attend it!
Excellent. I’m on Stage 4 on the Thursday afternoon: “Brewing Tea Over The Internet”.
Should be fun times, see you there.
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.