URL query / duplicate key / array convention

同名queryと配列の意味・順序を分ける

URL queryの同名キー、bracket配列、plus、順序、fragmentの境界を合成caseで確認します。ユーザーURLは受け取らず、ローカルでレビュー票を作ります。

URL queryの5つの境界

同名queryはサーバーやライブラリごとに扱いが異なります。配列の記法、値の復号、順序、fragmentを分けて記録します。

same key ≠ one value / query → array → verify
レビュー
duplicate同名queryを勝手に最後の1件へ潰さない。
bracketitems[]=a は配列の慣習であり、普遍的な仕様ではない。
plus空白として扱うplusと、文字として扱うplusを区別する。
orderサーバーが意味を持たせる場合に備えて順序を保存する。
fragmentfragmentはqueryとは別で、サーバーへ送られない。

安全な確認の順番

  1. 合成queryで同名キーと順序を記録する。
  2. bracketやplusの解釈を仕様として明示する。
  3. fragment境界を分けて、持ち帰る値を確認する。
  4. 実URLへ戻す前にローカルレビュー票を承認する。

このページはユーザーURLを解析せず、合成caseだけを扱います。外部送信、保存、URLの書き換えは行いません。

6つの合成case

case結果
duplicate-keysPreserve duplicate values
bracket-arrayBracket convention
plus-decodingPlus boundary
order-preservedKeep order
fragment-boundaryFragment is separate
local-noteLocal handoff