17

Myślałem o Registering an Application to a URL Protocol i chciałbym wiedzieć, jakie znaki są dozwolone w schemacie?Poprawne znaki dla schematów URI?

Przykłady:

  • h323 (zawiera numery)
    • h323:[<user>@]<host>[:<port>][;<parameters>]
  • z39.50r (posiada . oraz)
    • z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]
  • paparazzi:http (ma :)
    • paparazzi:http:[//<host>[:[<port>][<transport>]]/

Więc, co mogę znaków ochotę użyciu?
Czy mamy ...

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

... itp., Zależnie od potrzeb, czy znaki w schemacie są ograniczone standard?

Odpowiedz

20

Według RFC 2396, Dodatek A:

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

Znaczenie:

Program powinien zaczynać się od litery (duże lub małe litery) i może zawiera liter (wciąż dużych i małych liter), liczba, "+", "-" i ".".


Uwaga: w przypadku

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

program jest tylko "paparazzi" część.

+0

Rozumiem. Ale są RFC, które używają liczb ... Dlaczego? –

+0

Liczby są dozwolone w schemacie URI, ale nie jako pierwszy znak. "a234" jest ważne, a "4bcd" nie. –

+0

Czy uważasz, że fakt, że będzie on używany tylko jako protokół URL w systemie Windows, ma wpływ na użyteczność innych znaków? –

7

The scheme according to RFC 3986 jest zdefiniowany jako:

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

więc program musi zaczynać się od znaku alfabetu (A - Z, a - z) i może być stosowana przez dowolną liczbę znaków alfanumerycznych, +, - lub ..

+0

Czy uważasz, że używanie go jako protokołu URL działającego jedynie w systemie Windows ma wpływ na używane znaki? Jeśli to zmieni cokolwiek, zrobię kilka testów ... –

5

rzekła RFC 2396:

nazwy Schemat składa się z ciągu znaków zaczynając od małej litery, a następnie dowolną kombinację małych liter litery, cyfry plus („+”), termin (".") lub łącznik ("-").