Numberwise

Internet and web numbers

The internet runs on numbers that had to be agreed rather than discovered: RFC document numbers like 1918 and 2616, port assignments like 80 and 443, and status codes like 404 and 500. None of them was chosen for its value — an RFC number records only when a document was published — and the network does not work without agreement on every one.

Three numbering systems overlap here and are constantly confused. RFC numbers are issued in one continuous sequence since 1969, so a low number means an old document and nothing more — RFC 768 defines UDP in three pages and RFC 9114 defines HTTP/3. Port numbers are an IANA registry where the only value that carries consequence is 1024, below which binding requires privilege. Status codes are the one system where the digits do mean something: 4xx says the client's request was wrong and 5xx says the server broke, which is a decision about whose fault an error is. The hub covers all three, and the recurring theme is that the numbers are arbitrary and the agreement is not.

Three numbering systems, constantly confused

RFC numbers identify documents. They run in one sequence from 1969 to the present, so the number tells you when something was written and nothing about its importance or scope.

Port numbers identify services on a host. They are an IANA registry, and the assignment is a bookkeeping decision — port 22 went to SSH because it happened to sit between telnet and ftp in the list.

Status codes identify outcomes. Unlike the other two, their values are structured: the first digit carries the meaning, which is why a client can handle an unfamiliar 4xx sensibly without knowing what it is.

The one number that has real consequences: 1024

Ports below 1024 require elevated privilege to bind on Unix systems. That single rule shaped decades of practice — it is why web servers historically started as root and dropped privileges afterwards, why a developer running a server as themselves reaches for 8080 instead of 80, and why container platforms had to make the restriction configurable. No other number in this hub changes what software is allowed to do.

How a protocol number outlives its protocol

RFC 2616 specified HTTP/1.1 in 1999 and was replaced in 2014 by six separate documents, then replaced again in 2022 by another set. It is still cited by number, because a generation of engineers learned it that way and because the number is stable in a way the document is not. The same happens to ports: 25 still carries mail between servers under rules that assume a network of cooperating operators that has not existed for twenty years.

Where the numbers are agreed and where they are not

Everything here works because independent parties agreed on a value, and the interesting failures are where agreement is incomplete. Ingress filtering has been the recommended fix for address spoofing since 2000 and is still not universally deployed. DNS over HTTPS encrypts queries and moves the question of who can see them from the network operator to the resolver operator, which is a policy disagreement rather than a technical one. The numbers are settled; what to do with them is not.

Internet and web numbers in the catalogue

Common questions

What do HTTP status codes mean?

The first digit is the whole message. 2xx means the request succeeded, 3xx means it was redirected, 4xx means the client's request was wrong, and 5xx means the server failed while handling a request that was fine. 404 and 500 are the two most people meet, and the difference between them is whose fault the error is.

What is an RFC number?

A document number issued by the IETF in one continuous sequence since 1969. It records when a document was published and nothing else — RFC 768 defines UDP in three pages and RFC 9114 defines HTTP/3 — so a low number means an old document rather than an important one.

Why are some port numbers special?

Ports are entries in an IANA registry, and the only value that carries a technical consequence is 1024: binding anything below it requires elevated privilege on Unix systems. That single rule is why web servers historically ran as root, and why developers reach for 8080 instead of 80.

Do these numbers mean anything on their own?

Almost never. 443 would have worked as well as any other free number, and 404 would have worked as well as 407. Status codes are the exception: their grouping by first digit is deliberate, and it is the only place in this hub where the value itself carries information.