URL과 리소스가 어떻게 쓰이는지 더 자세히 알아보자.
인터넷의 리소스 탐색하기

URL은 브라우저, 컴퓨터, 서버, 서버 파일 시스템이 어디에 위치하고 어떻게 연결되는지 보여줌.
-
스킴은 웹 클라가 리소스에 어떻게 접근하는지 알려줌.
-
호스트는 서버의 위치임. 리소스가 어디에 호스팅 되어 있는지를 알려줌.
-
리소스의 경로는 서버에 존재하는 로컬 리소스 중 요청받은 리소스가 무엇인지 알려줌.
-
http 프로토콜이 아닌 다른 프로토콜도 있음.
- ex) 이메일 주소, ftp, 스트리밍을 제공하기 위해 비디오 서버에 호스팅하고 있는 영화.
- URL은
스킴://서버위치/경로
구조로 동일하게 이루어져 있어 모든 사람이 같은 방식으로 리소스를 찾을 수 있도록 단일 방식의 작명 규칙을 가짐.
<aside>
😨 URL이 있기 전, 어플리케이션마다 달리 갖고 있는 분류 방식을 사용했기에 엄청나게 복잡한 방법이 산재해 있었다.
</aside>
URL 문법

일반적인 URL 컴포넌트
- 스킴
- URL을 해석하는 애플리케이션이 어떤 프로토콜을 사용하여 리소스를 요청해야 하는지 알려줌.
:
로 구별하고 대소문자를 가리지 않으므로 http://와 HTTP://는 같음.
- 호스트와 포트
- 애플리케이션이 인터넷에 있는 리소스를 찾으려면, 리소스를 호스팅하고 있는 장비와
- 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 알아야 함.
- 사용자 이름과 번호
- 보통 스킴과 호스트 사이에 위치함.
- 애플리케이션이 FTP와 같이 사용자 이름과 비밀번호를 요구하는 URL 스킴을 사용할 때 씀.
- 만약 값이 없다면 브라우저에서 기본으로 정의하고 있는 기본 값을 넣음. ex)
anonymous
, [email protected]
@
문자로 URL과 사용자 이름과,비밀번호를 분리함. ex) ftp://anonymous:my_password@...
- 경로
- 서버가 리소스의 위치를 찾는데 사용하는 정보.
- 파일 시스템과 유사한 구조.
/
로 경로를 구분함.
- 파라미터
- 스킴이 객체에 대한 호스트 및 경로 정보만으로는 리소스를 찾지 못함.
- URL 파라미터는 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용함.
;
로 URL과 구분하며 key, value 값으로 이루어짐. ex) http://...gnu;type=d
- 질의 문자열
- 데이터베이스 같은 서비스들은 요청받을 리소스 형식의 범위를 좁히기 위해 질문을 받음.
?
로 URL과 구분하여 key, value 형식임.
- 질의 컴포넌트 간의 구별은
&
로 함.
- ex)
http://.../inventory-check.cgi?item=12731&color=blue
- 프래그먼트
- 리소스의 특정 부분을 가르킬 수 있도록 프래그먼트 컴포넌트를 제공함.
- HTML 문서에 있는 특정 이미지나 일부분을 가르킬 수 있음.
#
으로 URL과 구분.
- 참고로 서버는 객체 일부가 아닌 전체만을 다루기 때문에 클라는 서버에 프래그먼트만 전송하지 않음. 브라우저가 서버로부터 전체 리소스를 내려받은 후, 프래그먼트를 사용하여 보고자 하는 리소스의 일부를 보여줌.
단축 URL