URLはクエリーが先か、フラグが先か

Table of Contents

お知り合いから相談がありました。

以下のどっちが正しいの?

http://www.example.com/abc.html#test?shika=prin

http://www.example.com/abc.html?shika=prin#test

気になったので調べてみました。

URIの仕様の和訳

http://www.studyinghttp.net/rfc_ja/rfc3986

の、Sec3

http://www.studyinghttp.net/rfc_ja/rfc3986#Sec3

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

または、Sec4.2

http://www.studyinghttp.net/rfc_ja/rfc3986#Sec4.2

relative-part [ "?" query ] [ "#" fragment ]

というわけで、「? # の順番」が仕様で良いと思います。