Какие символы можно использовать в URL? - PullRequest
12 голосов
/ 13 апреля 2011

У меня есть приложение, которое принимает все параметры в 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}, но они, похоже, изменили это.

Ответы [ 4 ]

12 голосов
/ 13 апреля 2011

Вы можете использовать буквенно-цифровые символы, а также специальные символы "$ -_. +! * '()," Больше информации здесь: http://www.ietf.org/rfc/rfc1738.txt

Кроме того, обратите внимание, что в URL не должно превышать 2000 символов

5 голосов
/ 13 апреля 2011

Самая последняя спецификация URI - RFC 3986;см. ABNF для получения подробной информации о том, какие символы разрешены в каких частях для URI.

Формат для части абсолютного пути:

  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    = "!" / "$" / "&" / "'" / "(" / ")"
                      / "*" / "+" / "," / ";" / "="
1 голос
/ 13 апреля 2011

См. http://www.ietf.org/rfc/rfc1738.txt

В принципе, вам разрешены все буквенно-цифровые символы, а также $ - _ . + ! * ' ( ) ,

0 голосов
/ 13 апреля 2011

Вы можете использовать тире или подчеркивание (они часто используются).Вы можете использовать любой символ, какой захотите, но, например, пробелы в URL превращаются в% 20, поэтому они выглядят не очень красиво.

...