美元符号 $ 在 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 中有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

Python中的“ @”(@)符号有啥作用?

Haskell GLUT 库中的 ($=)(美元等于)运算符有啥作用?

jquery里面的美元符号代表啥?

$ -----JavaScript 中美元符号 $ 的作用

有人可以解释 Javascript 中的美元符号吗?

从整个 Python Pandas 数据框中删除美元符号