URL允许的字符记录

仅供自己做记录。
转载:https://www.zhihu.com/question/24474922/answer/33358420

首先,在URL中有特殊意义的字符,也就是保留字符: ; / ? : @ & = + $ , {10个} 这意味着,这些字符通常在URL中使用时,是有特殊含义的(如 ":"把每一个部分分隔开来), 如果一个URL的某一部分(如查询参数的一部分)可能包含这些字符之一,则应该在放入URL之前 对其进行转义处理.

第二组需要注意的字符集是非保留字符集.如下: - _ . ! ~ * ’ ( ) {9个} 这些字符可以被用于URL的任何位置(有些地方,不允许它们出现). 使用它们作为URL的一部分时,你不需要进行编码/转义处理.你可以对它们进行转义操作且不影响URL 的语义,但不建议这么做.

第三组 不推荐字符 也就是避用字符集合使用它们是不明智的:{ } | \ ^ [ ] `::数字1键前:: {8个}不明智的原因:网关有时会修改这样的字符,或者将其作为分隔符使用.这并不意味着网关总会修改这些字符,但这种情况可能发生.如果真是要使用这些字符,请做转义处理.

第四组 例外字符集 这组字符集是所有的ASCII控制字符组成.包含空格字符以下列字符:< > # % " {5 个}控制字符是不可打印的US-ASCII字符(十六进制00~1F及7F)如果使用,请转义处理.有些字符#(哈希)和%(百分比)在URL上下文中有着特殊含义,你可以把它们当作保留字符对待.这个集合中的其它字符无法被打印,因此对它们进行转义是唯一的表示方式, < > " 这三个字符需要被转义,因为这些字符通常用来在文本中分隔URL

猜你喜欢

转载自blog.csdn.net/D_iRe_Wol_F/article/details/82989535