URL의 query에 대해

url에서 query는 ?와 #사이에 있는 부분이다. (( Berners-Lee, T., Fielding, R. and Masinter, L., Uniform Resource Identifier (URI): Generic Syntax RFC 3986, January 2005. ))

    foo://example.com:8042/over/there?name=ferret#nose
    _/   ______________/_________/ _________/ __/
     |           |            |            |        |
  scheme     authority       path        query   fragment
     |   _____________________|__
    /  /                        
    urn:example:animal:ferret:nose

query(RFC 3986) 혹은 query string(RFC 3875)이라고 부르기도 한다. 옛날 옛날엔 무려 search part라고 하기도 했다. (RFC 1738)

그런데 사실 저렇게 name-value pair의 집합을 &를 delimiter로 해서 이어 보내는 것은 URL이 아니라 HTML의 스펙이다. 이 스펙에서는 delimiter로 & 뿐 아니라 ;도 사용할 수 있도록 지원하라고 권하고 있다. 하지만 실제로 그렇게 하는 사례는 별로 보지 못했다.

위에서의 name이나 ferret 같은 것들을 각각 정확히 뭐라고 불러야 하는지에 대한 명확한 규정은 찾기 어렵다. W3C의 스펙은 RFC에 비해 다소 느슨한 것 같다(내 느낌은 그렇다). HTML 스펙에선 각각을 namevalue로 부르고 있는데, 너무 추상적인 것으로 보아 명확히 용어를 정의하려는 의도로 그렇게 부른 것은 아닌 모양이다. 그러다보니 흔히 parameter라 부르게 되는데 대부분의 의도를 잘 반영한 이름이므로 괜찮은 것 같다.

Advertisements

URL의 query에 대해”에 대한 3개의 생각

    1. 저건 사실… 제가 그린게 아니라 RFC 3986에 있는 걸 그냥 들고 왔습니다;; 뭐 ascii art 그리는 툴이 vim 플러그인으로 있기도 하지만요. (뭐였는지는 까먹음)

      좋아하기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중