Я создал Spring REST-приложение, в котором вы можете выполнять CRUD-операции на основе HTTP-методов POST, PUT, GET, DELETE.У меня есть типичный шаблон URI
http://host/root/{id}/{name}/{address} and etc.
У нас есть клиент, который обращается к этой службе REST.Очевидно, они отправляют параметры для имени из нескольких слов и адреса в следующей форме:
http://host/root/11/John+Smith/10+Las+Vegas+USA
Они используют схему кодирования HTML, основанную на типе application / x-www-form-urlencoded.Согласно статье в Википедии
application / x-www-form-urlencoded type
Кодировка, используемая по умолчанию, основана на очень ранней версии общего URI процента-правила кодирования с рядом модификаций, таких как нормализация новой строки и замена пробелов на «+» вместо «% 20».- http://en.wikipedia.org/wiki/Percent-encoding
Однако представляется, что стандартная схема кодирования URL-адресов заключается в использовании% 20 при замене пробелов в шаблонах URI.Какой из них правильный?
My Spring REST автоматически конвертирует% 20 в пробелы.Это правильно истолковано.Я использую Spring 3.0.4.Когда мой REST-сервис встречает +, он принимается как есть.Конечно, когда я ставлю валидацию для исключения +, она действительно исключается, как и ожидалось.
Находится ли я в рамках стандартов или существуют такие двойные стандарты?Или клиент использует древнюю схему?