파게로그

URL의 구성 본문

콤퓨타 왕기초/Web

URL의 구성

파게 2021. 12. 6. 07:39

URL이란, "네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약" 또는 "컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 리소스에 대한 참조"이다(위키백과).

 

다만 URL(Uniform Resource Locator)은 URI(Uniform Resource Identifier)의 부분집합으로서, 다음과 같은 차이를 지닌다.

  URI URL
https://www.ddoongi.com/index.html O O
https://www.ddoongi.com/index O X


위를 A, 아래를 B라 하자. B의 경우라도 파일명이 index라면 URL일 수 있으나, 이 경우는 제외한다. 리소스를 식별하는 기능을 갖추기만 하면 URI라고 할 수 있기에, A뿐만 아니라 B도 URI가 될 수 있다. 그러나 URL이기 위해서는 리소스의 위치를 가리켜야 한다. A의 경우, 웹 서버 상에 실제로 index.html이라는 파일이 존재하며 해당 파일의 위치를 가리키기에 URL이라 할 수 있다. 반면 B의 경우, 웹 서버 상에 실제로 index.html이라는 파일이 존재하는지는 알 수 없다. 웹 서버가 내부적으로 어떤 작업을 통해서 index.html을 클라이언트에게 보여준다고 하더라도 직접 해당 리소스를 가리키지는 않기에 URL이라고는 할 수 없으며, 다만 해당 리소스에 대한 식별자로서는 기능하고 있기에 URI라고는 할 수 있는 것이다.
다르게 설명하자면, URL은 물리적 리소스의 위치에 한정되는 반면 URI는 논리적 리소스의 위치도 포함한다고 할 수 있다.

 

그렇다면 이 URL의 구성은 어떻게 될까?

사실 이 글을 쓰게된 것은, 도메인과 관련한 용어가 헷갈려서 이를 정리해보고자 함이었다. 실제로도 용어의 혼동이 조금씩 있는 것 같다. 용어 설명 전 간단하게 다른 부분에 대해서만 설명을 덧붙이자면, query string의 경우 여러 개의 쿼리는 &로 연결하며, ;은 더이상 사용되지 않는다. fragment의 경우 공식적으로는 URL의 구성 요소가 아니며, 브라우저단에서 해석된다. 

 

domain name

일단 MDN의 What is a domain name?에 따르면, 위와 같은 예시에서 info.ddoongi.com 전체는 domain name이다. 하지만 좁은 의미에서 domain name이란, 도메인 위계에서 두 번째 레벨, 즉 TLD 바로 다음의 것으로서, 위 예시에서는 ddoongi를 말한다. 이러한 좁은 의미의 domain name은 MDN에서는 label이라고 지칭되고 있다.

 

root domain

root domain은 두 가지 의미를 지닌다. 첫째로, 리눅스에서의 루트와 같은 느낌으로서 TLD보다도 상위의 레벨을 말한다. 즉 어떤 DNS(Domain Name System)의 최상위 레벨이다. 둘째로, 어떤 서비스에서 제어할 수 있는 최상위 레벨로서, SLD와 TLD의 조합을 의미한다. 위의 예시에서는 info.ddoongi.com, news.ddoongi.com, 심지어 www.ddoongi.com까지 분기되는, ddoongi.com을 말한다.

 

zero-level domain

종종 TLD를 zero-level domain이라 부르기도 하지만 엄밀히 말하면 이는 잘못되었다. 다음이 올바르다.

zero-level domain: empty (.)

first-level domain: TLD (.com)

second-level domain: (ddoongi.com)

third-level domain: (info.ddoongi.com)

여기서 zero-level domain이 어떤 도메인 네임 시스템에서의 최상위 레벨을 뜻하는 ""(root domain)과 같은 걸 말하는 건지 잘 모르겠다. 이 덕택에 www.naver.com이 아닌 www.naver.com.으로도 접속이 가능하다. 

 

SLD(Second-Level Domain)와 subdomain

subdomain은 third-level domain이라고도 불리며, SLD 왼쪽의 부분을 일컫는다고도 볼 수 있다. 하지만 subdomain은 보다 관계적인 개념으로 접근할 수 있는데, 예를 들어 info.ddoongi.comddoongi.com의 subdomain이며, ddoongi.comcom의 subdomain이며, com은 ""(root domain)의 subdomain이라고 볼 수 있는 것이다. 물론 www.ddoongi.com 또한 ddoongi.com의 subdomain이다.

 

www의 정체

최근에는 많은 사이트들이 www를 생략한 주소를 광고하며, 그리고 사용한다. 사실 이게 제일 궁금했었다. 찾다보니 얻게 된 결론은, 사실 www도 수많은 subdomain 중 하나일 뿐이며, 직접 매핑해주지 않으면 www를 붙인 주소가 접속되지 않을 수도 있다.

 

References

https://sitechecker.pro/root-domain/

https://raventools.com/marketing-glossary/root-domain/

https://moz.com/learn/seo/domain

https://blog.banyazavi.com/2019-09-08/root-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%9D%84-www%EB%A1%9C-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8-%EC%8B%9C%ED%82%A4%EA%B8%B0

RFC 8499: DNS Terminology https://www.rfc-editor.org/rfc/rfc8499

RFC 1034: Domain names https://www.rfc-editor.org/rfc/rfc1034

Comments