美元符号$在url中的作用是什么?

问题描述 投票:23回答:2

我一直在看 $ ! ; . , 是url中的'保留'字符,但我找不到它们的用途。但我找不到它们的用途。

/ path delimiter  
: port
? query  
& glue get params  
= param=val  
\# link anchor  
+ space

.

我的 specific 问题。有人知道什么是 $ ! ; . , 用来做什么?是否 : 有什么特别的含义吗?

security url web
2个回答
26
投票

RFC 2396 已经过时了。

对于现代版本的规范,请参见。

  • RFC3987 (就国际投资协定而言);以及
  • RFC3986 (与URI的关系)。

关于

是的,它在路径部分被用作定界符。

关于.NET,它是作为端口的前缀使用的。

是的,它被用作端口的前缀,但它还有其他的作用,例如用户信息分隔符,以及主机指定符的 IP 样式的定界符。

About =

令人惊讶的是,=字符并不是一般URL、URI或IRI语法的一部分。它只有在http(s)协议中才有特殊意义。这并不是URLIRIURI所固有的。

关于+

用+代替空格的作用并不是URLURIIRI语法的一部分。它只是一些PHP程序为了漂亮的URL目的而发明的一种方便。

关于$和;

这两个词在URLURIIRI语法中没有特殊的含义。它们可以是子分隔符生产的一部分,可以用于用户信息部分、未来IP部分、路径段或主机部分。


3
投票

你的问题有点宽泛,但是 RFC 2396 应该包含你所有的答案。

许多URI包括由某些特殊字符组成或分隔的组件。 这些字符被称为 "保留",因为它们在URI组件中的使用仅限于其保留目的。 如果一个URI组件的数据会与保留的目的相冲突,那么在形成URI之前,冲突的数据必须被转义。

 reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
                "$" | ","

上面的 "保留 "语法类指的是那些在URI中允许使用,但在通用URI语法的特定组件中可能不允许使用的字符;它们被用作第3节中描述的组件的定界符。

保留 "集合中的字符并不是在所有上下文中都被保留。任何给定的URI组件中实际保留的字符集由该组件定义。一般来说,如果URI的语义发生了变化,如果一个字符被替换成其转义的US-ASCII编码,那么这个字符就会被保留。

© www.soinside.com 2019 - 2024. All rights reserved.