可以在URL中使用哪些字符?

Sor*_*anu 13 url rfc

我有一个应用程序,它接受URL中的所有参数,如下所示:/category/subcategory/sub-subcategory.我希望能够在URL的末尾提供额外的参数,比如page-2/order-desc.这将使整个URL成为cat/subcat/sub-subcat{delimiting-character}page-2/order-desc.

我的问题是:我可以使用哪些角色{delimiting-character}.我倾向于选择":",因为我知道它肯定不会出现在任何其他地方,但我不知道它是否符合标准,或者至少它是否会在将来给我带来问题.

我记得vimeo使用过这样的东西:vimeo.com/video:{code}但它们似乎改变了这一点.

and*_*rew 12

您可以使用字母,加上特殊字符"$ -_ +*'()!"更多资讯:http://www.ietf.org/rfc/rfc1738.txt

另外,请注意网址中不要超过2000个字符

  • 以下是来自URL的文本:**其他字符不安全,因为已知网关和其他传输代理有时会修改此类字符.这些字符是"{","}","|","\","^","〜","[","]"和"`"** (3认同)
  • “+”符号有点棘手 - 这应该始终被正确编码,即使如此...... (2认同)

McD*_*ell 5

最新的URI规范是RFC 3986。有关允许在URI的哪些部分中使用哪些字符的详细信息,请参见ABNF

绝对路径部分的格式为:

  path-absolute = "/" [ segment-nz *( "/" segment ) ]
  segment       = *pchar
  segment-nz    = 1*pchar
  pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
  pct-encoded   = "%" HEXDIG HEXDIG
  unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
  sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                      / "*" / "+" / "," / ";" / "="
Run Code Online (Sandbox Code Playgroud)