Правильный способ передачи нескольких значений для одного и того же имени параметра в запросе GET
Я ищу правильный способ передачи нескольких значений для одного и того же имени параметра в запросе GET.
Я видел такие URL-адреса:
http://server/action?id=a&id=b
и я видел такие URL-адреса:
http://server/action?id=a,b
Я понимаю, что первый правильный, но я не могу найти никакой ссылки для этого. Я взглянул на спецификацию http, но ничего не увидел о том, как должна быть составлена часть "запроса" URL-адреса.
Я не хочу ответа, что говорит "либо хорошо" - если я создаю веб-сервис, я хочу знать, какой из этих методов является стандартным, чтобы люди, использующие мой веб-сервис, знали, как передать несколько параметров для одного и того же имени.
Так, может кто-нибудь указать мне на официальный источник, чтобы подтвердить, какой вариант правильный?
1 ответов
действительно, нет определенного стандарта. Чтобы поддержать эту информацию, взгляните на Википедию, в Строку Запроса глава. Существует следующий комментарий:
пока нет окончательного стандарта, большинство веб-фреймворков позволяют несколько значений, связанных с одним полем.[3][4]
кроме того, когда вы взглянем на!--14-->RFC 3986, в секции 3.4 Запрос, нет определения для параметров с несколькими значениями.
большинство приложений используют первую показанную вами опцию:http://server/action?id=a&id=b
. Чтобы поддержать эту информацию, взгляните на это ссылка Stackoverflow, а это MSDN link относительно ASP.NET приложения, которые используют один и тот же стандарт для параметров с несколькими значениями.
однако, поскольку вы разрабатываете API, я предлагаю вам сделать то, что для вас проще всего, так как у вызывающего API не будет особых проблем с созданием строки запроса.