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 스펙에선 각각을 name
과 value
로 부르고 있는데, 너무 추상적인 것으로 보아 명확히 용어를 정의하려는 의도로 그렇게 부른 것은 아닌 모양이다. 그러다보니 흔히 parameter라 부르게 되는데 대부분의 의도를 잘 반영한 이름이므로 괜찮은 것 같다.
저 다이어그램(?)은 수동으로 그리신건가요? 아님 그려주는게 있나요? ㅎㅎ
좋아요좋아요
저건 사실… 제가 그린게 아니라 RFC 3986에 있는 걸 그냥 들고 왔습니다;; 뭐 ascii art 그리는 툴이 vim 플러그인으로 있기도 하지만요. (뭐였는지는 까먹음)
좋아요좋아요
알려주신 김에 출처 표시라도 추가해야겠네요
좋아요좋아요