我有这样的网址: localhost:8080 / demo /
当我致电localhost:8080/demo/'''''''''
它工作正常。
但是当我尝试使用localhost:8080/demo/;;;
它不起作用并返回HTTP代码404 Not Found。
我尝试了几个特殊字符# % \ ? /
,它也返回了400。
任何人都能为我解释一下吗? 非常感谢你!
答案 0 :(得分:0)
这些特殊字符不能直接在网址中使用,
因为他们有特殊的意义。
例如:
/
是路径中的分隔符,
?
标记了网址的查询部分,
#
标记了页面内部链接,
等
引自Wikipedia: Percent-encoding reserved characters:
当保留集中的字符(“保留字符”)时 在某种情况下具有特殊含义(“保留目的”), 和一个URI方案说,有必要使用该字符 对于某些其他目的,该字符必须是百分比编码。 编码保留字符的百分比涉及转换 字符到ASCII中的相应字节值然后 将该值表示为一对十六进制数字。数字, 以百分号(%)开头,用作转义字符, 然后在URI中使用它来代替保留字符。
例如:;
是保留字符。因此,;
何时发生
在一个URL但没有其特殊含义,那么它需要
已定义here
%3B