2.2.7. 프래그먼트
HTML 같은 리소스 형식들은 본래 수준보다 더 작게 나뉠 수 있다.
예를 들어 절(paragraph)이 포함된 용량이 큰 한 개의 텍스트 문서의 경우, 그 리소스에 대한 URL은 텍스트 문서 전체를 가리키겠지만, 이상적으로는 리소스 안에 있는 특정 절을 가리킬 수 있어야 한다.
리소스의 특정 부분을 가리킬 수 있도록, URL은 리소스 내의 조각을 가리킬 수 있는 프래그먼트 컴포넌트를 제공한다.
예를 들어 URL은 HTML 문서에 있는 특정 이미지나 일부분을 가리킬 수 있다.
프래그먼트는 URL의 오른족에 #
문자에 이어서 온다.
예를 들면 다음과 같다.
http://www.test.com/tools.html#drills
이 예에서 drills
라는 프래그먼트는 www.test.com
웹 서버에 위치한 /tools.html
웹페이지의 일부를 가리킨다.
그 부분을 drills
라고 기술하였다.
일반적으로 HTTP 서버는 객체 일부가 아닌 전체만 다루기 때문에, 클라이언트는 서버에 프래그먼트를 전달하지 않는다.
15장의 '범위 요청'에서, HTTP 에이전트가 객체의 일정 바이트 범위를 요청하는 것을 볼 것이다.
하지만 URL 프래그먼트의 경우 서버는 전체 객체를 전송하고, 에이전트는 그 전체 객체를 받은 다음 프래그먼트 식별자를 사용하여 객체 일부를 보여준다.
브라우저가 서버로부터 전체 리소스를 내려받은 후, 프래그먼트를 사용하여 당신이 보고자 하는 리소스의 일부를 보여준다.
http://www.test.com/tools.html#drills
|
(a) 사용자가 http://www.test.com/tools.html#drills 를 가리키는 링크를 선택한다.
|
| (프래그먼트는 서버로 보내지 않는다.)
| (b) 브라우저는 http://www.test.com/tools.html 을 요청한다.
v
클라이언트 <------- 인터넷 -------> www.test.com
| (c) 서버는 전체 HTML 페이지를 반환한다.
|
v 브라우저는 'drills' 프래그먼트에 시작부로 스크롤을 내린다.
(d) 브라우저는 'drills' 프래그먼트로 시작하는 HTML 페이지를 보여준다.