17

Stavo pensando allo Registering an Application to a URL Protocol e mi piacerebbe sapere quali caratteri sono ammessi in uno schema?Caratteri validi per schemi URI?

Alcuni esempi:

  • h323 (ha numeri)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r (ha un . così)
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • paparazzi:http (ha una :)
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

Allora, che i personaggi possono immagino usando?
Possiamo avere ...

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

... ecc., Come desiderato, o personaggi del regime sono limitati da standard?

risposta

20

Secondo RFC 2396, Appendice A:

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

Significato:

Lo schema dovrebbe iniziare con una lettera (maiuscola o minuscola), e può contenere lettere (ancora maiuscole e minuscole), numero, "+", "-" e ".".


Nota: nel caso di

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

lo schema è solo la parte "paparazzi".

+0

Vedo. Ma ci sono RFC che usano numeri ... Perché? –

+0

I numeri sono consentiti nello schema URI, ma non come primo carattere. 'a234' è valido, mentre '4bcd' non lo è. –

+0

Pensi che il fatto che verrà utilizzato solo come protocollo URL su Windows ha un impatto sull'usabilità di altri caratteri? –

7

Il scheme according to RFC 3986 è definito come:

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

Così lo schema deve iniziare con un carattere alfabetico (A - Z, a - z) e può essere seguita da un numero qualsiasi di caratteri alfanumerici, +, - o ..

+0

Pensi che utilizzarlo come protocollo URL solo per Windows abbia un impatto sui caratteri utilizzati? Se questo cambia qualcosa, farei dei test ... –

5

Disse RFC 2396:

nomi Schema consistono in una sequenza di caratteri che inizia con un caso di lettera inferiore e seguita da una qualsiasi combinazione di lettere minuscole lettere, le cifre, più ("+"), punto ("."), o trattino ("-").