URI方案的有效字符?

Cam*_*tin 24 standards-compliance url-scheme custom-protocol illegal-characters

我正在考虑将应用程序注册到URL协议,我想知道,方案中允许哪些字符?

一些例子:

  • h323(有号码)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r(也有.)
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • 狗仔队:http(有一个:)
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

那么,我可以使用哪些角色?
我们可以......

  • @:TwitterUser
  • #:HashTag
  • $:CapitalStock
  • ?:ID-10T

......等等,或者方案中的字符受标准限制?

Viv*_*sse 27

根据RFC 2396,附录A:

  scheme        = alpha *( alpha | digit | "+" | "-" | "." )
Run Code Online (Sandbox Code Playgroud)

含义:

该方案应以字母(大写或小写)开头,并且可以包含字母(仍为大写和小写),数字,"+"," - "和".".


注意:在的情况下

paparazzi:http:[//<host>[:[<port>][<transport>]]/
Run Code Online (Sandbox Code Playgroud)

该计划只是"狗仔队"的一部分.

  • `paparazzi` 类似于 `mailto`:它没有层次结构,因此没有 `//` (2认同)

Gum*_*mbo 11

根据RFC 3986方案定义为:

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
Run Code Online (Sandbox Code Playgroud)

所以该方案必须以字母开头(A- ,Z- a),z并可以接着通过任何数目的字母数字字符,+,-,或..


Bol*_*ock 6

答曰RFC 2396:

方案名称由一系列以小写字母开头的字符组成,后跟小写字母,数字,加号("+"),句号(".")或连字符(" - ")的任意组合.