31

我正在考虑将应用程序注册到 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

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

4

3 回答 3

36

根据RFC 2396,附录 A:

  scheme        = alpha *( alpha | digit | "+" | "-" | "." )

意义:

该方案应以字母(大写或小写)开头,并且可以包含字母(仍然是大写和小写)、数字、“+”、“-”和“.”。


注:情况下

paparazzi:http:[//<host>[:[<port>][<transport>]]/

该计划只是“狗仔队”的一部分。

于 2010-09-04T10:04:20.700 回答
12

根据 RFC 3986的方案定义为:

scheme      = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

因此,该方案必须以字母字符(A-<code>Z、a-<code>z)开头,后面可以跟任意数量的字母数字字符+、、、-.

于 2010-09-04T10:03:07.690 回答
6

Quoth RFC 2396

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

于 2010-09-04T10:03:21.323 回答