-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
tldr: "///p?q#f" のようなURLを Go は ///p の部分を全てpathと解釈するが、それは間違いだと思う
RFC3986には以下の記述がある
URI が authority 要素を含まない場合、path はスラッシュ二文字 ("//") を持って始める事はできない。
また、BNFを見ても上記の記述の通り path-abempty 以外はpathの最初に /を連続して使用することができない。
path-abempty = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty = 0<pchar>
つまり、 ///p は path は /p だけで、 authority部が空文字だと解釈するべきだと思う
https://go.dev/play/p/4_6MyFFHGmC
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3110a7655169af9ba5e8a095bc0a49fd
Metadata
Metadata
Assignees
Labels
No labels