URL query / duplicate key / array convention
Separate URL query duplicates and array meaning
Review duplicate query keys, bracket arrays, plus signs, order and fragment boundaries with synthetic cases. User URLs are never accepted; save a local review note instead.
Five URL query boundaries
Same-name query keys are handled differently by servers and libraries. Record array notation, decoding, order and fragments separately.
same key ≠ one value / query → array → verify
| Axis | Review |
|---|
| duplicate | Do not silently collapse duplicate query keys to the last value. |
| bracket | items[]=a is a convention, not a universal specification. |
| plus | Separate plus-as-space from a literal plus sign. |
| order | Keep order when a server gives it meaning. |
| fragment | A fragment is separate from the query and is not sent to a server. |
Safe review order
- Record duplicate keys and order in a synthetic query.
- State the interpretation of brackets and plus signs.
- Separate the fragment boundary before handing values off.
- Approve the local note before returning to a real URL.
This page never parses user URLs. It uses synthetic cases only and performs no external request, storage or URL rewrite.
Six synthetic cases
| case | result |
|---|
duplicate-keys | Preserve duplicate values |
bracket-array | Bracket convention |
plus-decoding | Plus boundary |
order-preserved | Keep order |
fragment-boundary | Fragment is separate |
local-note | Local handoff |