A QR code — short for Quick Response code — is a two-dimensional barcode. The pattern of black and white squares is a literal encoding of data, almost always a web address. Your phone’s camera reads it optically: it detects the contrast between the light and dark squares, converts that grid into bits, and decodes the bits back into text. Reading the code itself needs no internet connection — the decoding happens on the device. Only opening the link it contains does.
What is inside the pattern
Every QR code is built from the same fixed parts, which is what lets any scanner read any code:
- Finder patterns — the three big square rings in the corners. The camera looks for these first; their ratio of dark to light is distinctive enough that software can spot a code in a cluttered photo and work out its rotation and perspective.
- Alignment and timing patterns — smaller markers and a dotted line that help the scanner map the exact grid when the code is printed on a curved surface or photographed at an angle.
- Quiet zone — the empty margin around the code. It is part of the spec, not decoration: without roughly four squares’ worth of clear space, many scanners will not lock on.
- Format and version information — a few reserved regions that tell the scanner how big the grid is and which error-correction level was used.
- Data and error-correction modules — everything else. This is your encoded URL plus the redundancy that repairs it if part is unreadable.
The more data you encode, the larger the grid. A short link might fit in a 25×25 grid; a long one pushes the code to 60×60 or more, with finer squares that need a cleaner print to stay scannable.
How your phone reads one
- The camera locates the three finder patterns and squares up the image.
- It samples each cell in the grid as either dark (a 1) or light (a 0).
- It runs Reed–Solomon error correction over those bits — the same maths used on CDs and in deep-space radio — to reconstruct anything smudged, torn, or obscured.
- It decodes the corrected bits into text, detects that the text is a URL, and hands it to the operating system, which shows you a tap-to-open banner.
On any iPhone from iOS 11 onward and virtually every current Android phone this is built into the camera app, with no separate scanner needed. The full walkthrough is in how to scan a QR code on iPhone and Android.
Why error correction matters
QR codes come in four error-correction levels — L, M, Q and H — recovering roughly 7%, 15%, 25% and 30% of the code respectively. Higher levels add redundancy, which makes the grid denser for the same data but far more forgiving of poor printing, creases, or a design element placed on top. This is the mechanism behind putting a logo in a QR code: the logo covers data the error correction can rebuild. It is also why the size, contrast and quiet-zone rules exist — get those wrong and no amount of error correction saves the scan.
Static vs dynamic: where the destination lives
This is the one distinction that changes how a code behaves in the real world.
A static QR code encodes your final destination directly. Scan it and the phone reads, say, https://example.com/menu.pdf straight off the pattern. There is no server in the middle and nothing to maintain — but the destination is fixed the moment you print it.
A dynamic QR code encodes a short redirect URL instead — something like https://qrever.com/r/x7k2p. When it is scanned, that provider’s server receives the request, looks up the real destination you set, and forwards the visitor there. Because the target lives on the server rather than in the print, you can change it after printing and count scans — at the cost of depending on that redirect staying online. The trade-offs are laid out in dynamic vs static QR codes.
Do QR codes wear out or expire?
The pattern itself never degrades — it is data, not a battery. A static code works for as long as its destination URL resolves. A dynamic code works for as long as the redirect behind it is maintained, which for most providers means for as long as the subscription is paid. Neither is a property of the QR standard; both come down to what sits behind the code. See how long QR codes last and whether dynamic codes need a subscription for the specifics.
The short version
A QR code is a self-contained, optically-read encoding of data — usually a URL — with enough structure for a camera to find it and enough redundancy to survive damage. Whether it can be edited later is not about the code at all; it is about whether the destination is baked into the pattern (static) or resolved by a server (dynamic).