Я смотрю, как правильно передать несколько значений для одного и того же имени параметра в запросе GET.
Я видел такие URL:
http://server/action?id=a&id=b
И я видел такие URL:
http://server/action?id=a,b
Насколько я понимаю, первое правильно, но я не могу найти ссылку на это. Я взглянул на спецификацию http, но ничего не понял о том, как должна составляться часть запроса в URL.
Мне не нужен ответ, который говорит, что «либо в порядке» - если я создаю веб-сервис, я хочу знать, какой из этих методов является стандартным, чтобы люди, использующие мой веб-сервис, знали, как передавать несколько параметров для одного и того же имени.
Итак, кто-то может указать мне на официальный источник справки, чтобы подтвердить, какой вариант является правильным?
id=a&id=b
как логическое И, так иid=a,b
логическое ИЛИ.?id=5&id=3
. PHP будет читать только одно значение для id здесь. Если я правильно помню, это должно выглядеть так, чтобы он работал с PHP:?id[]=5&id[]=3
since you are developing the APIs, I suggest you to do what is the easiest for you, since the caller of the API will not have much trouble creating the query string.
id=a,b
делает предположение, что кома,
является допустимым разделителем. Но ваши значения параметров могут содержать,
. Затем клиенту необходимо экранировать,
значения параметров запроса. Но вы могли бы решить;
, лучше. Это означает, что клиент и сервер должны совместно использовать официальный разделитель для вашего API.id=a&id=b
не имеет этой проблемы, даже несмотря на то, что она увеличивает URLЯ бы посоветовал посмотреть, как браузеры обрабатывают формы по умолчанию. Например, посмотрите на элемент формы
<select multiple>
и как он обрабатывает несколько значений из этого примера в w3schools.Для использования PHP:
Живой пример сверху на w3schools.com
Сверху, если вы нажмете "saab, opel" и нажмете "отправить", будет получен результат cars = saab & cars = opel . Затем в зависимости от фонового сервера, параметр автомобили должны встретить как массив , который вы можете дополнительно обрабатывать.
Надеюсь, что это поможет любому, кто ищет более «стандартный» способ решения этой проблемы.
источник