Compare meaning, not spelling
04Equivalent geo URIs can have different numeric spellings. Unknown extension values require caution.
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 ↗
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.
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.
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 ↗