Web 浏览器 URL (http/https)不能以哪些字符(如果有)结尾?
据我所知,不使用控制字符,例如
\0
零。\t
标签。\n
新队。- 空间(从测试看来这是被剥离的)。
是否有此类字符的完整列表?
Web 浏览器 URL (http/https)不能以哪些字符(如果有)结尾?
据我所知,不使用控制字符,例如
\0
零。\t
标签。\n
新队。是否有此类字符的完整列表?
URI 可以在以下三种情况下结束:
使用路径组件(如果它没有查询/片段)
http://example.com/
http://example.com/path
http://example.com/path/path
使用查询组件(如果它没有片段)
http://example.com/?query
http://example.com/path?query
http://example.com/path/path?query
与片段组件
http://example.com/#fragment
http://example.com/path#fragment
http://example.com/path/path#fragment
http://example.com/?query#fragment
http://example.com/path?query#fragment
http://example.com/path/path?query#fragment
URI 标准对这三个组件( Path、Query、Fragment )的末尾没有任何限制,因此允许相同的字符出现在组件的任何其他位置:
空间(从测试看来这是被剥离的)
URI 可以在末尾有(多个)空格字符(在所有三种情况下),但它们必须是百分比编码的。无论在哪里,都不允许未编码的空格。
http://example.com/path-ending-with-four-spaces-%20%20%20%20
如果用户代理尝试将用户输入转换为有效的 URI(即,对所有不能出现在组件中的字符进行百分比编码),它可能会假设尾随空格不打算成为 URI 的一部分,并去掉他们。
制表符和换行符也是如此。如果使用百分比编码,它们可以是 URI 的一部分。