Skip to content

Conversation

@House-Men
Copy link
Contributor

解决类似“/xxx/xxx.htm#xxx?xxxx”的顺序导致解析结果有错误。

@ithewei
Copy link
Owner

ithewei commented Apr 16, 2025

根据 RFC 3986 标准定义,URI 的通用语法结构为:

scheme:[//authority]path[?query][#fragment]

(方括号表示可选,但顺序不可调换)

@House-Men
Copy link
Contributor Author

House-Men commented Apr 16, 2025

根据 RFC 3986 标准定义,URI 的通用语法结构为:

scheme:[//authority]path[?query][#fragment]

(方括号表示可选,但顺序不可调换)

标准格式顺序确实是这样,但是#字符的出现代表后面可以是任意剩余字符,其中就可以出现?,而且代码 http/HttpMessage.cpp 中对 HttpRequest::Path() 的处理也是有?与#做了优先级处理的,经过主流浏览器地址栏与开发者工具观察请求报文也是可以证实确实存在优先级处理,#如果比?优先出现那么后面都属于fragment而不会识别成path=/xxx/xxx.htm#xxx,query=xxxx,fragment=空

@House-Men House-Men closed this Aug 8, 2025
@House-Men House-Men deleted the patch-4 branch August 8, 2025 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants