Лучшая практика для разделителей в пути URL HTTP

Было бы неразумно использовать различные символы пунктуации в пути URL-адреса HTTP? Я нахожусь в процессе определения URL-адресов ресурсов для API. Эти URL-адреса ресурсов должны быть доступны, сохранены и переданы широкому кругу клиентов и промежуточного программного обеспечения, поэтому важно, чтобы они не содержали символов, которые могут вызвать проблемы.

RFC 3986, раздел 2.2. «Зарезервированные символы» определяют следующие символы в качестве разделителей:! $ & '() * +,; =

Являются ли какие-либо из них недопустимыми для произвольного использования в путях URL в схеме HTTP?

Даже если они законны в соответствии со стандартами, есть ли у любого из них высокий шанс вызвать реальные проблемы совместимости из-за несовместимого программного обеспечения?

Существуют ли какие-либо особые разделители, которые вы ранее без проблем использовали в широко распространенный API (это доказывает, что те, которые вы использовали, безопасны)?

Мотивация состоит в том, что нам нужно разграничить пары ключ-значение, которые не имеют иерархической семантики. Мы планируем сделать это: http://doriantaylor.com/policy/http-url-path-parameter-syntax . Однако, если это может быть проблемой, мы просто сделаем http://example.com/key1/value1/key2/value2

спасибо

6
задан bshanks 19 August 2011 в 23:07
поделиться