2.2.6. 질의 문자열
데이터베이스 같은 서비스들은 요청받을 리소스 형식의 범위를 좁히기 위해서 질문이나 질의를 받을 수 있다.
어떤 상품판매 사이트에 판매되지 않은 상품의 재고 리스트가 있고, 어떤 상품들이 비축되어 있는지 조회할 수 있다고 해보자.
다음 URL은 아이템 번호 12731의 재고가 있는지 확인하기 위해서 웹 데이터베이스 게이트웨이에 질의하는데 사용된다.
http://www.test.com/inventory-check.cgi?item=12731
이는 우리가 요청해오던 URL과 거의 유사하다.
다른 점은 물음표(?)의 우측에 있는 값들이다.
이를 질의 컴포넌트라고 부른다.
URL의 질의 컴포넌트는 게이트웨이를 가리키는 URL의 경로 컴포넌트와 함께 전달하고 있다.
보통 게이트웨이는, 다른 애플리케이션에 접근하려고 할 때 거치는 통로라고 할 수 있다.(게이트웨이에 대한 내용은 8장에서 자세히 다룬다.)
다음 그림은 어떤 상품판매 사이트에 재고 확인을 하기 위해 게이트웨이 서버로 전달하는 질의 컴포넌트의 예를 보여준다.
이 질의는 제품번호가 12731이고, 큰(large) 치수에, 파란색인 물품의 재고가 있는지 검사한다.
http://www.test.com/inventory-check.cgi?item=12371&color=blue&size=large
|
|
v
클라이언트
|
인터넷
|
v
서버
|
item=12731&color=blue&size=large
|
v
재고 확인 게이트웨이
이 장의 뒤에서 언급할 사용하면 안 되는 특정 문자들을 제외하고는 질의 컴포넌트 포맷에 제약사항은 없다.
편의상 많은 게이트웨이가 '&'로 나뉜 '이름=값' 쌍 형식의 질의 문자열을 원한다.
http://www.test.com/inventory-check.cgi?item=12371&color=blue&size=large
이 예에는 이름/값 쌍으로 된 3개의 질의 컴포넌트가 존재한다.item=12731
과 color=blue
, size=large