GET 요청에서 동일한 매개 변수 이름에 대해 여러 값을 전달하는 올바른 방법이 무엇인지 조사 중입니다.
다음과 같은 URL을 보았습니다.
http://server/action?id=a&id=b
그리고 다음과 같은 URL을 보았습니다.
http://server/action?id=a,b
내 이해는 첫 번째는 정확하지만 이것에 대한 참조를 찾을 수 없다는 것입니다. http 사양을 살펴 보았지만 URL의 ‘쿼리’부분을 구성하는 방법에 대해서는 아무것도 볼 수 없었습니다.
웹 서비스를 구축하는 경우 웹 서비스를 사용하는 사람들이 동일한 이름으로 여러 매개 변수를 전달하는 방법을 알 수 있도록 이러한 방법 중 어느 것이 표준인지 알고 싶습니다.
그렇다면 누군가 어떤 옵션이 올바른지 확인하기 위해 공식 참조 출처를 알려줄 수 있습니까?
답변
실제로 정의 된 표준이 없습니다. 이 정보를 지원하려면 쿼리 문자열 장 에서 위키 백과를 살펴보십시오 . 다음과 같은 의견이 있습니다.
명확한 표준은 없지만 대부분의 웹 프레임 워크에서는 여러 값을 단일 필드와 연결할 수 있습니다. [3] [4]
또한 3.4 쿼리 섹션에서 RFC 3986을 살펴보면 여러 값을 가진 매개 변수에 대한 정의가 없습니다.
대부분의 응용 프로그램은 표시 한 첫 번째 옵션을 사용합니다 http://server/action?id=a&id=b
. 이 정보를 지원하려면이 Stackoverflow 링크 및 ASP.NET 응용 프로그램과 관련된 이 MSDN 링크 를 살펴보십시오.이 값은 여러 값을 가진 매개 변수에 동일한 표준을 사용합니다.
그러나 API를 개발 중이므로 API 호출자가 쿼리 문자열을 만드는 데 많은 문제가 없으므로 가장 쉬운 방법을 수행하는 것이 좋습니다.
답변
브라우저가 기본적으로 양식을 처리하는 방법을 살펴 보는 것이 좋습니다. 예를 들어 양식 요소 <select multiple>
와 w3schools의이 예제에서 여러 값을 처리하는 방법을 살펴보십시오 .
<form action="/action_page.php">
<select name="cars" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<input type="submit">
</form>
PHP의 경우 :
<select name="cars[]" multiple>
위에서 “saab, opel”을 클릭하고 제출을 클릭하면 cars = saab & cars = opel 의 결과가 생성됩니다 . 그런 다음 백엔드 서버에 따라 매개 변수 cars 가 추가 처리 할 수있는 배열로 제공되어야합니다.
이것이이 문제를 처리하는보다 ‘표준적인’방법을 찾는 사람에게 도움이되기를 바랍니다.