URL & URI의 차이점 (+URN)

rvlwldev·2023년 1월 31일
0

CS

목록 보기
1/12

Restful API를 공부하거나 일상생활에서도 링크나 사이트의 주소 등을 나타낼 때 URL, URI라는 표현을 자주 사용한다.
보통 둘다 사이트 주소로 이해하고 있지만 URL, URI는 뜻이 다르다.

1. URI (Uniform Resource Identifier)

  • Uniform Resource Identifier 말 그대로 정형화된 자원의 식별자
  • velog.io 처럼 그 이름 자체를 URI라고 말할 수 있다.
  • 프로토콜과 결합되어도 (https://velog.io) 역시 URI라고 말할 수 있지만, 동시에 URL이라고도 할 수 있다.
  • 또한 모든 리소스를 식별하는 모든 수단이 URI라고 할 수 있다.

2. URL (Uniform Resource Locator)

  • 보통 인터넷 주소라고 하면 대부분은 URL이라고 할 수 있다.
  • 프로토콜(http, sftp..)이 결합된 주소만이 URL이라고 할 수 있다. (ex. https://velog.io/)
    즉 해당 자원의 위치와 접근방법(프로토콜)이 결합되어야 URL이라고 말할 수 있다.(경우에 따라서 port도 포함될 수 있다.)
  • 즉 모든 URL은 URI일 수 있지만, 모든 URL이 URI일 수는 없다. (URI가 상위개념)
    Example)
    velog.io - URI
    https://velog.io/ - URI, URL

2-1. URL의 구조

URL example
https://news.naver.com:443/main/main.naver?mode=LSD&mid=shm&sid1=105

Protocol

  • 위 예시의 https 부분
  • 통신규약을 의미하며 https말고도 많은 통신규약이 존재한다.

SLD (Second Level Domain)

  • 위 예시의 news 부분
  • 서브도메인이라고도 불리며, 하나의 도메인으로 여러 서비스를 제공할 수 있다.
    'www' 말고도 'm', 'admin' 등 여러 임의의 문자열을 지정할 수 있다.

Domain

  • 위 예시의 naver 부분
  • URL의 중심이 되며 아이덴티티로 역할을 겸하기 때문에
    대부분 해당 웹서비스의 이름이 들어간다.

TLD(Top Level Domain)

  • 위 예시의 com 부분
  • 위의 서브도메인과 도메인을 관리하는 기관이나 단체를 뜻한다.
  • TLD는 해당 도메인을 소유한 기관이나 기업에 의해 관리된다.
  • 운영주체에 따라 ccTLD, gTLD 2가지로 나뉜다
    • ccTLD (country code Top Level Domain)
      • kr, jp, io 등 국가기관 직접관리하는 최상위 도메인이다.
      • 한국의 경우 kr로 KISA(한국 인터넷 진흥원)이 관리한다.
    • gTLD (generic Top Level Domain)
      • com, net, gov 등이 있으며 다양한 종류가 있으며 가장 흔하게 접할 수 있다.
      • 정부기관 TLD인 gov는 ccTLD에 속하지 않는다.

Port

  • 위 예시의 :443 부분
  • 보통의 웹사이트의 경우 포트번호를 보기 힘든데 그 이유는 HTTPS 프로토콜의 기본 포트번호인 443인 경우 생략이 가능하기 때문이다.
    프로토콜의 기본 포트번호를 사용하지 않는다면 생략이 불가능하기 때문에
    대부분 기본포트번호를 사용한다.

Path

  • 위 예시의 /main/main.naver 부분, 도메인의 하위 경로를 의미하며 /로 구분한다.

Query String

  • 위 예시의 ?mode=LSD&mid=shm&sid1=105 부분
  • 해당 경로에 데이터를 전송할 때 사용된다. ?로 시작하며 &로 구분한다.
  • 각각의 데이터는 파라미터라고 칭하며 key=value의 형태를 지니고 있다.
  • 하지만 개발자가 해당 key의 대한 동작을 정의했을때만 의미를 가진다.

참조 : https://danielmiessler.com/study/difference-between-uri-url/ https://blog.itcode.dev/posts/2021/05/29/uri-url-urn

0개의 댓글