Visual RFC.
ALL RFCs / RFC 5870
Read the RFC ↗
RFC 5870 / GEOGRAPHIC LOCATION LINKS

Compare meaning, not spelling

04

Equivalent geo URIs can have different numeric spellings. Unknown extension values require caution.

RFC 5870 · § 3.4.4EXAMPLE
4 / 4
Compare meaning, not spellingFour independent URI comparisons. Numeric22.300 and22.3 and negative118.44 and negative118.4400 normalize to identical coordinates, using comma separators required by the grammar. At latitude90, two different valid longitudes and explicit WGS84 versus implicit default are equivalent. At latitude0, longitudes180 and negative180 are equivalent at the date line. Last unknown parameter foo values1.00 and1 cannot be normalized by a legacy implementation: comparison is not determined, while percent-decoded this%2dthat and this-that are identical bytes. Absence of altitude or uncertainty is never filled with zero.Independent comparisons · not distancesgeo:70,20;foo=1.00geo:70,20;foo=1invent numeric rules for fooComparison: not determinedUnknown value rules · do not guessthis%2dthat → this-thatIdentical decoded bytes can establish equivalence
04
Stop short of inventing equivalence.

geo:70,20;foo=1.00 versus geo:70,20;foo=1 has not determined comparison for a legacy consumer: foo is illustrative and unknown. In contrast, this%2dthat and this-that have identical percent-decoded bytes.

Source for this drawing: RFC 5870 · Read RFC section 3.4.4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Terms in this drawing
Percent decoding
Replacing a %HH escape with the represented byte, exactly where the parameter syntax permits it.
Legacy consumer
Here, software that understands the base scheme but not a newer extension parameter’s comparison rules.
Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Normalize only where the specification tells you to.

  • Compare coordinate and u values as normalized numbers. An omitted CRS equals explicit wgs84, case-insensitively. Parameter names are case-insensitive; parameter order does not affect comparison, but generation order constraints still apply.
  • For WGS-84 poles at latitude ±90, longitude MUST be ignored during comparison. Consumers MUST accept any valid longitude there, though producers SHOULD use 0. Longitudes 180 and -180 MUST compare equal.
  • Unknown parameter sets and percent-decoded values must be bitwise identical to establish equivalence in a legacy consumer; otherwise comparison is not determined. Do not assume numeric or case folding for unknown values. Missing altitude MUST NOT equal present altitude; absent u differs from u=0.
DETAILS

Examples are independent comparisons, not a timeline or a geographic distance calculation. §6.4 contains a semicolon typo in a numeric example, noted in held erratum 8389; our example uses the comma required by §3.3. “Undefined” means insufficient comparison rules, not proven different locations.

Read the RFC section ↗

All chapters in RFC 5870

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗