1. Ports
  2. Port 418

The Confusion: This Isn't Really a Port

Port 418 doesn't exist in the way most ports do. You won't find services listening on TCP port 418. When people talk about "418," they're talking about HTTP status code 418, which reads: "I'm a teapot."

This is a joke. But it's a joke that became permanent infrastructure.

What 418 Actually Is: The Teapot That Wouldn't Brew Coffee

On April 1, 1998, Larry Masinter published RFC 2324: the Hyper Text Coffee Pot Control Protocol (HTCPCP).1 It was an April Fools' Day RFC—a parody of how HTTP was being inappropriately extended for every random device imaginable.

The joke was this: if you tried to use a teapot to brew coffee, it should return error code 418 with the message "I'm a teapot." The RFC noted that "the resulting entity body MAY be short and stout."2

It was satire. Masinter later explained that the protocol had "a serious purpose—it identifies many of the ways in which HTTP has been extended inappropriately."3 The Internet was littering HTTP with device-specific extensions. The coffee pot protocol was supposed to make people laugh and then think.

Instead, people just laughed. And then they implemented it.

Why It Matters: The Serious Purpose Behind the Joke

Masinter wasn't just being silly. He saw a real problem: HTTP was being stretched in dangerous ways, with every device getting its own specialized protocol variant. This fragmentation meant people kept reinventing solutions instead of building reusable systems.

The teapot was a warning shot. It said: "Look how absurd this is getting."

The Internet heard the absurdity. They loved it. They kept it.

The 2017 Battle: Save 418

By 2017, HTTP status code 418 had been sitting in the spec for 19 years. Some people thought it was time to clean up the joke and reclaim the number for something "real."

Mark Nottingham, chair of the HTTP working group, proposed removing 418 from Node.js and other frameworks. It was a joke. It didn't belong in production infrastructure.

Then a 15-year-old developer named Shane Brunswick built save418.com.4 The message was simple: Keep the teapot.

The Internet erupted. Engineers from Google, Node.js, Python, Go, and ASP.NET stood firm. The 418 status code was deployed in production systems. It was beloved. It was whimsy in a world of bureaucracy.

Nottingham reversed course. In 2018, he drafted an RFC to permanently reserve the 418 status code.5 The draft was titled "Reserving the 418 HTTP Status Code" and included a dedication: "Thanks, Larry."

In 2022, RFC 9110 formalized it: 418 is reserved forever. It cannot be reassigned. The teapot stays.6

What RFC 7168 Added: Tea Support

On April 1, 2014—16 years after the coffee pot—the IETF published RFC 7168: HTCPCP-TEA.7 This extended the original joke to support brewing tea.

The problem, as the RFC explained, was that "the HTCPCP specification does not allow for the brewing of tea, in all its variety and complexity." Tea required its own extension.

RFC 7168 added support for selecting specific tea types before brewing and introduced new error conditions for tea-related failures. It was another April Fools' RFC, layered on top of the original joke.

The Internet kept building.

Modern Usage: Google's Teapot and Real Deployments

Today, if you visit google.com/teapot, you'll see an animated tilting teapot and receive an HTTP 418 response.8 It's Google's tribute to Internet culture and the Save 418 movement.

But 418 isn't just decorative. Some websites use it as a response for requests they don't want to handle—automated queries, bot traffic, or requests that violate rate limits.9 It's a way of saying "I could handle this, but I won't" without using a standard error code.

Major frameworks—Node.js, Python's Flask, Ruby on Rails, Go's net/http—all support 418 natively. It's woven into the fabric of the web.

Why Port 418 Doesn't Actually Exist

The IANA port registry has no official assignment for port 418.10 It's in the "well-known" range (0-1023), but it's empty. Nobody runs services on TCP or UDP port 418.

The confusion exists because HTTP status codes and port numbers live in different namespaces. Port 418 is just a number. HTTP status code 418 is a cultural artifact.

If you check what's listening on port 418 on your machine, you'll probably find nothing:

# Check what's listening on port 418
lsof -i :418

# Or using netstat
netstat -an | grep :418

You'll get silence. Because there's nothing there.

The Lesson: Whimsy Has a Place in Infrastructure

The story of 418 is the story of engineers choosing joy over efficiency. It's a reminder that the Internet isn't just pipes and protocols—it's built by humans who sometimes decide that a teapot refusing to brew coffee is worth protecting forever.

Larry Masinter wrote a joke to critique protocol bloat. The Internet turned it into permanent infrastructure. And when someone tried to remove it, a teenager rallied the world to save it.

The teapot stays. Not because it's useful. Because it's ours.

Frequently Asked Questions

Was this page helpful?

😔
🤨
😃