URL에서 매개 변수와 쿼리 문자열 사이에 많은 차이가 보이지 않습니다. 그렇다면 차이점은 무엇이며 언제 다른 하나를 사용해야할까요?
URL에서 매개 변수와 쿼리 문자열 사이에 많은 차이가 보이지 않습니다. 그렇다면 차이점은 무엇이며 언제 다른 하나를 사용해야할까요?
답변:
질의 구성 요소는 첫 번째로 표시되는 ?
URI에있다. "쿼리 문자열"은 동의어 일 수 있습니다 (이 용어는 URI 표준에서 사용되지 않음).
쿼리 구성 요소가있는 HTTP URI의 몇 가지 예 :
http://example.com/foo?bar
http://example.com/foo/foo/foo?bar/bar/bar
http://example.com/?bar
http://example.com/?@bar._=???/1:
http://example.com/?bar1=a&bar2=b
쿼리 구성 요소의 "형식"은 URI 작성자에게 달려 있습니다. 일반적인 규칙 ( 단, URI 표준에 관한 한 규칙에 지나지 않음 ¹)은 키-값 쌍 (일명)에 쿼리 구성 요소를 사용하는 것입니다. 위의 마지막 예와 같은 매개 변수 : bar1=a&bar2=b
.
이러한 매개 변수는 다른 URI 구성 요소, 즉 경로 ² 및 단편에도 나타날 수 있습니다. URI 표준에 관한 한 어떤 구성 요소와 어떤 형식을 사용할지는 귀하에게 달려 있습니다.
경로, 쿼리 및 단편에 매개 변수가있는 예제 URI :
http://example.com/foo;key1=value1?key2=value2#key3=value3
¹ URI 표준은 쿼리 구성 요소에 대해 다음과 같이 말합니다 .
[…] 쿼리 구성 요소는 "키 = 값"쌍의 형태로 식별 정보를 전달하는 데 자주 사용됩니다. […]
² URI 표준은 경로 구성 요소에 대해 말합니다 .
[…] 세미콜론 ( ";") 및 같음 ( "=") 예약 문자는 종종 해당 세그먼트에 적용 할 수있는 매개 변수 및 매개 변수 값을 구분하는 데 사용됩니다. 쉼표 ( ",") 예약 문자는 종종 유사한 목적으로 사용됩니다.
매개 변수는 URL 경로 내에 나타날 수있는 키-값 쌍이며 세미콜론 문자 ( ;
)로 시작 합니다.
쿼리 문자열은 경로 (있는 경우) 뒤에 나타나며 물음표 문자 ( ?
)로 시작합니다.
매개 변수와 쿼리 문자열 모두 키-값 쌍을 포함합니다.
A의 GET
요청 매개 변수는 URL 자체에 나타납니다 :
<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>
A의 POST
요청 매개 변수뿐만 아니라 (같은 내용으로 함) 데이터 스트림에서, URL 자체에 나타날 수 있습니다.
쿼리 문자열은 항상 URL의 일부입니다.
매개 변수는 form-data
POST 메소드를 사용할 때 데이터 스트림에 묻힐 수 있으므로 URL에 나타나지 않을 수 있습니다. 예, POST
요청은 매개 변수를 양식 데이터 및 URL 로 정의 할 수 있으며 매개 변수가 여러 값을 가질 수 있으므로 일관성이 없습니다.
지금까지이 동작에 대한 설명을 찾지 못했습니다. POST
요청 에서 매개 변수를 "숨기기 해제"하는 것이 유용 할 수 있으며 요청을 처리하는 GET
코드가 POST
. 물론 이것은 URL의 매개 변수를 지원하는 서버 코드에서만 작동 할 수 있습니다.
더 나은 통찰력을 얻을 때까지 요청의 form-data
데이터 스트림 에서만 매개 변수를 사용하는 것이 좋습니다 POST
.
출처 :