美元符号 $ 在 url 中有啥作用?
Posted
技术标签:
【中文标题】美元符号 $ 在 url 中有啥作用?【英文标题】:What does dollar sign $ do in url?美元符号 $ 在 url 中有什么作用? 【发布时间】:2013-12-01 17:46:29 【问题描述】:我一直在阅读 $ ! ; . ,
是 url 中的“保留”字符。但我找不到他们保留的内容。
/ path delimiter
: port
? query
& glue get params
= param=val
\# link anchor
+ space
。
我的specific
问题:
有谁知道$ ! ; . ,
是干什么用的?
请求uri中:
有什么特殊含义吗?
【问题讨论】:
我觉得这个问题太笼统了,不是专门针对编程问题的。它可能更适合Software Engineering 或Webmasters 【参考方案1】:RFC 2396 已过时。
有关规范的现代版本,请参阅:
RFC3987(与 IRI 相关);和 RFC3986(与 URI 相关)。关于/
是的,它用作路径部分的分隔符。
关于:
是的,它用作端口的前缀,但它具有其他角色,例如用户信息分隔符,以及主机说明符的 IP 样式的分隔符。
关于=
令人惊讶的是,= 字符不是一般 URL、URI 或 IRI 语法的一部分。它仅对 http(s) 协议具有特殊含义。这不是 URL/IRI/URI 所固有的
关于+
+ 代替空格的作用不是 URL/URI/IRI 语法的一部分。它只是一些 php 程序为了漂亮的 URL 目的而方便地发明的。
关于$和;
这些在 URL/URI/IRI 语法中没有特殊含义。它们可以是子分隔符产生的一部分,可用于用户信息部分、未来IP部分、路径段或主机部分。
【讨论】:
真的很酷的答案。如果可以的话,添加一些关于 $ ; . , 和 : 在请求 uri 中。=
不是一般 URL 语法的一部分吗? google.com/search?q=test
@FreshPrinceOfSO:自己检查一下规范。
@FreshPrinceOfSO 此编码源自html’s application/x-www-form-urlencoded
encoding。
确实如此。在一些实现中,x-www-form-urlencoded 解释为 ';'等同于 '&' - 请参阅 ***.com/a/7287629/263879【参考方案2】:
您的问题有点宽泛,但RFC 2396 应该包含您的所有答案。
许多 URI 包含由某些特殊字符组成或分隔的组件。这些字符被称为“保留”,因为它们在 URI 组件中的使用仅限于它们的保留用途。如果 URI 组件的数据与保留用途冲突,则必须在形成 URI 之前对冲突数据进行转义。
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
上面的“保留”语法类是指那些在 URI 中允许的字符,但在通用 URI 语法的特定组件中可能不允许的字符;它们被用作第 3 节中描述的组件的分隔符。
“保留”集中的字符并非在所有上下文中都保留。在任何给定 URI 组件中实际保留的字符集由该组件定义。一般来说,如果 URI 的语义发生变化,如果字符被其转义的 US-ASCII 编码替换,则该字符被保留。
【讨论】:
好的,但是$ ; . ,
是做什么用的?
它们可用于特定于应用程序的功能。仅仅因为它们被“保留”并不意味着它们不能被使用。
按照这个逻辑:
也有免费/应用程序特定的功能,对吧?如果在请求 uri 中使用 :)
RFC 3986 解释说,$ ; ,
可以用作 URL 标识符中的子分隔符。以上是关于美元符号 $ 在 url 中有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章