window.navigator

The Navigator Object

Every time you visit a website, your browser introduces you first. It says what device you are on, what language you read, whether you are holding a phone or sitting at a desk, and a surprising amount more. That introduction lives in a JavaScript object called navigator, and this page is a complete tour of it.

Nothing below is a screenshot or a guess. Every value on this page is read live from the browser you are using right now, so open it on your phone and on your computer and compare. The differences are the story.

Your browser, right now

This is the introduction your browser just gave this page. No server was asked; the page simply read its own navigator object. Anything marked absent is something your browser chooses not to share, and that choice varies a lot between browsers.

How identifiable are you?

None of the facts above looks private on its own. Knowing your language is how a site greets you correctly. Knowing your processor count is how a game picks its settings. But a fingerprint is not one fact; it is the combination. Stack enough ordinary facts together and the pile stops describing people in general and starts describing one person in particular. This panel adds up the stable, passively readable values from this page's own object, nothing else, and shows you the pile.

Fold those values together and hash them, and you get a short calling card:

Two browsers with the same calling card gave the same introduction. A calling card that almost nobody else shares is a fingerprint in everything but name, and a site does not need your name or an account to recognize the card on your next visit.

Verdict:

Honest limit: this panel only uses values from the navigator object, because that is what this page is about. Real fingerprinting also reads your screen size, installed fonts, graphics behavior, time zone and dozens of other signals, hundreds of data points in all. What is shown here is the visible tip of that practice, not the whole of it.

First, how anything reaches you at all: routing

The internet is a delivery system. When you tap a link, your browser writes a request, essentially a small addressed envelope, and that request is routed across a chain of networks until it reaches the one computer that holds the answer. The answer is then routed back to you. Neither end needs to know the whole path; each stop only needs to know the next hop.

Riding inside that outgoing envelope, next to the address, is the introduction. Two of its most important lines are sent as headers on every single request: User-Agent, which comes straight from navigator.userAgent, and Accept-Language, which is navigator.languages written as a list. The server reads the envelope before deciding what to put in the reply.

The envelope itself, with your browser's real values filled in


      

Honest note: a web page cannot read the headers of its own request, so this block was assembled here, on the page, from the same navigator values your browser used to build the real one. It is a faithful model of your request, not a capture of it. Lines only appear when they apply to your browser; if your browser sends a privacy signal, you will see it listed, and if it does not, the line is simply not there. The server read lines like these before deciding what to route back to you.

Because of that, the introduction has quietly steered delivery since the earliest web:

And one member of this object goes further: serviceWorker is a router that lives inside the browser itself. It can intercept each request a page makes and decide, on the spot, whether the answer comes from the network or from storage on your device. That is the whole trick behind web apps that open instantly and work on a plane. You will find it in the capability shelf below.

So learning this one object is not a developer trivia exercise. It is learning what your browser says about you at the start of every delivery, and how that shapes what gets delivered back.

Privacy tags on each card: Routine is an ordinary fact or a capability behind a tap. Identifying is a value that helps single out your device or profile you. Sensitive is access to your location, devices, credentials or clipboard, the things browsers guard with permission prompts. The Missing on iPhone filter shows only the properties iOS Safari does not expose at all. Tap a property to open its full card.

Every card above carries its own short history. Merged into one stream, sorted by year, they tell a single story: how the browser's introduction grew from a couple of lines of text into the long, contested list on this page. Each beat links back to its property. Open the timeline, then open a decade at a time.