반갑습니다!

[Network] URL, URN, URI 본문

CS

[Network] URL, URN, URI

김덜덜이 2020. 5. 12. 22:10

기본적인 내용이지만 자주 헷갈려 한번 짚고 넘어가자는 생각에 포스팅하게 되었다.

URL (Uniform Resource Locator)

URL은 특정 서버의 리소스에 대한 구체적인 위치를 서술한 것이다. 때문에 URL은 리소스가 정확히 어디에 위치하는지, 어떻게 접근하는지를 분명하게 알려준다.

예를 들면 다음과 같다.

https://sports.news.naver.com/wfootball/index.nhn
- 네이버 뉴스의 '해외 축구' 관련 기사에 대한 URL

sports.news.naver.com 서버에서 wfootball 폴더 안의 index.nhn을 요청하는 URL이다.

URL의 한계

URL은 리소스의 위치를 서술한 것이므로 리소스의 위치가 바뀌게되면 이전에 접속했던 URL는 유효하지 않게 된다.

URN (Unifrom Resource Name)

URN은 특정 서버의 리소스의 구체적인 위치와 상관없는 이름을 말한다. 따라서 위치 독립적인 URN은 리소스의 경로를 옮기더라도 문제가 없다. URN은 유일한 값이어야 한다.

urn:isbn:0451450523 
- URN으로 1926년에 출간된 the Last Unicorn의 도서식별번호

URN의 한계

URL의 한계 때문에 URN이 등장했지만 아직 채택되지 않아 쉽게 접할 수 없다.

URI (Uniform Resource Identifier)

URI는 말 그대로 통합 자원 식별자이다. 인터넷의 우편물 주소 같은 것으로 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다. URI는 URL과 URN을 모두 포함하는 개념으로, 모든 URL은 URI이고, 모든 URN 역시도 URI이다.

예시

https://upload.wikimedia.org/wikipedia/commons/0/09/Flag_of_South_Korea.svg
- 태극기 이미지

위의 URI는 upload.wikimedia.org 서버의 wikipedia/commons/0/09/ 경로에 있는 Flag_of_South_Korea.svg 라는 자원을 의미한다. 이는 URI이면서 URL이라고 볼 수 있다.

https://dev-mb.tistory.com?name=mb

위의 URI는 dev-mb.tistory 서버에서 Query String인 name 값에 따라서 여러가지 결과를 보일 수 있다. 여기서 URL은 dev-mb.tistory.com 까지가 된다. Query String 자체는 리소스의 위치를 나타내는 것이 아니기 때문이다. 따라서 위의 주소는 URL이 아닌 URI가 된다.

'CS' 카테고리의 다른 글

[OS] Lock  (0) 2020.05.14
[Network] 프록시 서버  (0) 2020.05.12
[Network] 쿠키와 세션  (0) 2020.05.12
[Network] TCP와 UDP  (0) 2020.05.05
[Network] GET과 POST  (0) 2020.05.05