我一直在看 $ ! ; . ,
是url中的'保留'字符,但我找不到它们的用途。但我找不到它们的用途。
/ path delimiter
: port
? query
& glue get params
= param=val
\# link anchor
+ space
.
我的 specific
问题。有人知道什么是 $ ! ; . ,
用来做什么?是否 :
有什么特别的含义吗?
RFC 2396 已经过时了。
对于现代版本的规范,请参见。
是的,它在路径部分被用作定界符。
是的,它被用作端口的前缀,但它还有其他的作用,例如用户信息分隔符,以及主机指定符的 IP 样式的定界符。
令人惊讶的是,=字符并不是一般URL、URI或IRI语法的一部分。它只有在http(s)协议中才有特殊意义。这并不是URLIRIURI所固有的。
用+代替空格的作用并不是URLURIIRI语法的一部分。它只是一些PHP程序为了漂亮的URL目的而发明的一种方便。
这两个词在URLURIIRI语法中没有特殊的含义。它们可以是子分隔符生产的一部分,可以用于用户信息部分、未来IP部分、路径段或主机部分。
你的问题有点宽泛,但是 RFC 2396 应该包含你所有的答案。
许多URI包括由某些特殊字符组成或分隔的组件。 这些字符被称为 "保留",因为它们在URI组件中的使用仅限于其保留目的。 如果一个URI组件的数据会与保留的目的相冲突,那么在形成URI之前,冲突的数据必须被转义。
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
上面的 "保留 "语法类指的是那些在URI中允许使用,但在通用URI语法的特定组件中可能不允许使用的字符;它们被用作第3节中描述的组件的定界符。
保留 "集合中的字符并不是在所有上下文中都被保留。任何给定的URI组件中实际保留的字符集由该组件定义。一般来说,如果URI的语义发生了变化,如果一个字符被替换成其转义的US-ASCII编码,那么这个字符就会被保留。