2.2.5. 파라미터

많은 스킴이 객체에 대한 호스트 및 경로 정보만으로는 리소스를 찾지 못한다.
서버가 어떤 포트를 열어놓고 있는지, 리소스에 접근하기 위해 사용자 이름과 비밀번호를 명시했는지 여부 외에도 많은 프로토콜이 더 많은 정보를 요구한다.

URL을 사용하는 애플리케이션이 리소스에 접근하려면 프로토콜 파라미터가 필요하다.
프로토콜 파라미터가 없으면, 다른 한편에 있는 서버는 그 요청을 잘못 처리하거나 처리를 하지 않을 것이다.
바이너리와 텍스트, 총 2개의 포맷을 지원하는 FTP를 예로 들어보자.
사용자는 바이너리 이미지가 텍스트 형식으로 전송되는 것을 원하지 않는다.
이미지가 엉망이 될 게 뻔하기 때문이다.

URL의 파라미터 컴포넌트는, 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용한다.
이 컴포넌트는 이름/값 쌍의 리스트로 URL 나머지 부분들로부터 ';' 문자로 구분하여 URL에 기술한다.
이를 통해 애플리케이션이 리소스에 접근하는데 필요한 어떤 추가 정보든 전달할 수 있다.
예를 들면 다음과 같다.

ftp://prep.ai.mit.edu/pub/gnu;type=d

이 경우 이름은 type이고, 값은 dtype=d라는 단 한개의 파라미터를 전달한다.
앞서 언급했듯이, HTTP URL에서의 경로 컴포넌트는 경로조각으로 나눌 수 있다.
각 조각은 자체 파라미터를 가질 수 있다.
예를 들면 다음과 같다.

http://www.test.com/hammers;sale=false/index.html;graphics=true

위 URL에는 hammers와 index.html이라는 두 개의 경로조각이 있다.
hammers 경로조각은 값이 false인 sale이라는 파라미터를 가진다.
index.html 경로조각은 값이 true인 graphics란 파라미터를 가진다.