URI와 URL

URI보다 URL이 익숙하지 않으신가요?
웹 브라우저 등으로 웹 페이지를 표시하기 위해 입력하는 주소가 URL입니다.
ex) http://sonim1.tistory.com

URI는 리소스 식별자

URI는 Uniform Resource Identifiers의 약자입니다.
REF2396에서는 각각의 단어가 다음과 같이 정의되어 있다고 합니다.

Uniform

통일(Uniformity)된 서식을 결정하는 것입니다.
여러 가지 종류의 리소스 지정 방법을 같은 맥락에서 구별없이 취급할 수 있게 합니다.
또한 새로운 스키마 (http: 와 ftp등) 도입을 용이하게 합니다.

Resource

리소스 : 식별 가능한 모든 것
도큐먼트 파일 외에도 이미지, 서비스(ex - 일기예보) 등 다른 것과 구별할 수 있는 것은 모두 리소스입니다.

Identifier

식별 가능한 것을 참조하는 오브젝트이며 식별자로 불립니다.
스키마는 리소스를 얻기 위한 수단에 이름을 붙이는 방법입니다.

Http의 경우 ‘http’를 사용하며 이 외에도 ftp, mailto, telnet, file등이 있습니다.
이는 ICANN의 산하조직인 IANA에 등록되어 있으며 30개정도 있습니다.

두개의 차이? 결론

URI는 리소스를 식별하기 위해 문자열 전반을 나타내는데 비해 URL은 리소스의 장소(네트워크 상의 위치)를 나타냅니다.
URL은 URI의 서브셋입니다.
URI라는 말이 자주 나오지만, 이해하기 편하게 URL로 변경하여도 아무런 지장이 없습니다.

URL 포맷

http://user:pass@www.eample.jp:90/dir/index.html?uid=1#ch1
위의 주소는 포맷명칭별로 아래와 같이 쪼갤수 있습니다.

스키마 - http://
자격정보(크리덴셜) - user:pass
서버주소 - www.example.jp
서버포트 - 80
계층적 파일 패스 - /dir/index.htm
쿼리 문자열 - uid=1
프래그먼트 식별자 - ch1

자격정보(크리덴셜)

서버로부터 리소스를 취득하려면 자격정보가 필요합니다. 유저명과 패스워드를 지정할수 있으며 이것은 옵션입니다.

서버포트

이것은 옵션이며 생략하면 디폴트 포트가 사용됩니다.

계층적 파일 패스

특정 리소스 식별을 위한 서버상의 파일패스를 지정할 수 있습니다.

쿼리 문자열

임의의 파라미터를 넘겨주기 위해 쿼리 문자열을 사용합니다 .이것은 옵션입니다.

프래그멘트 식별자

취득한 리소스에서 서브 리소스(도큐먼트 중간에 위치)를 가리키기 위해서 프래그멘트 식별자가 사용됩니다.이는 옵션입니다.

마치며

URI URL에 대해서 살펴보았습니다.
다음시간에는 HTTP 프로토콜구조에 대해서 알아봅시다.