http URL的字符无效

时间:2011-06-24 05:25:51

标签: java http

任何人都可以告诉我HTTP URL的无效字符是什么,以及在Java中验证相同的最佳方法。我正在寻找的是URL格式的 URLString 验证: http(s):// ip:port / URLString

提前致谢。

4 个答案:

答案 0 :(得分:4)

您可以使用所需的任何unicode字符,只要它们是%编码的。明确保留的字符在RFC3986的第2.2节中定义:http://tools.ietf.org/html/rfc3986#section-2

来自文件:

  reserved    = gen-delims / sub-delims

  gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

  sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="

答案 1 :(得分:1)

根据RFC 1738,以下内容被认为是不安全的:

  1. <和> - 自由文本中的URL分隔符
  2. “(双引号) - 在某些系统中划分网址
  3. - 从可能跟随它的片段/锚标识符分隔URL

  4. % - 用于表示字符编码
  5. 一般不安全字符: {} | \ ^〜[]`

    修改

    不重复,但包含一些关于Java验证的想法:Validate URL in java

答案 2 :(得分:0)

请阅读链接上的RFC1738第2页和第3页了解详情。

答案 3 :(得分:0)

如何使用UrlValidator? isValidPath方法可能很有用。 :)