IP/Domain/URL의 기본 개념과 구조 🧬

IP란 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 쉽게 생각하면 인터넷 통신에서만 사용하는 전화번호이다.

URL의 안에 포함되는 도메인(Domain)은 IP를 가지는 서버를 사용자가 쉽게 기억하고 찾을 수 있도록 만들어 주는 서비스이다. 컴퓨터와의 통신에서는 숫자로 이루어진 IP를 사용하기 때문에 변환을 시켜주는 도메인 네임 서버(DNS)라는 것이 필요하다.

URL(Uniform Resource Locator)은 도메인을 포함한 경로이다.
사용자가 도메인 서버로 접속할 때, 프로토콜(http)과 서비스타입을 통합적으로 적어준 것이라고 볼 수 있다고 한다.

내가 이해한 방식은
도메인은 IP주소를 감싸는 포장지의 개념인 듯하고 컴퓨터와의 통신을 할 때 도메인이라는 포장지를 없애서 IP라는 알맹이를 클라이언트에게 전달하는 것 같다.

URL이라는 것은 도메인을 담고 정보에 부가적인 정보(프로토콜 등)를 담고 있는 그릇의 개념으로 생각했다.

📛 Domain의 구조

도메인은 호스트명(차상위 도메인/서브 도메인), 도메인명, 최상위 도메인 명으로 이루어져 있습니다.

네이버의 도메인으로 예를 들어보면

www.naver.com

// www. : 2단계 - 차상위 도메인 (SLD, Second-Level Domain)
// naver : 3단계 - 도메인 이름 (Domain Name)
// .com : 1단계 - 최상위 도메인 (TLD, Top-Level Domain)

이렇게 3계의 단계로 구성이 되는데 설명은 아래에 작성하겠다.

1. 최상위 도메인(TLD, Top-Level Domain)

도메인 레벨 중 가장 높은 1단계에 있는 도메인이다. 최상위 도메인이라고 하고 도메인의 목적, 종류, 국가를 나타낸다.

2. 차상위 도메인 (SLD, Second-Level Domain)

호스트 또는 서브 도메인이라고도 불리며 URL로 전송하거나 계정 내의 IP주소나 디렉토리로 포워딩되는 도메인 이름의 확장자

** 포워딩 : 해당 도메인을 쳤을 경우 지정된 사이트로 자동적으로 연결되도록 조작하는 행위

3. 도메인 이름(Domain Name)

임의로 지정할 수 있는 '사이트의 이름'이다.

📛 URL의 구조

URL은 http또는 https와 같은 Protocol, 호스트명, 도메인명 상위 도메인명으로 이루어진 Domain, Path, Parameter, Fragment로 이루어져 있다.

여기서 http, Domain, Path(/), Parameter(?), Fragment(#)가 있는데 Domain은 위에 글이 있으니 설명은 따로 하지 않겠다.


간단히 말하자면,

Path파일의 경로를 가리키며 컴퓨터의 파일 경로처럼 "/"를 이용한다.

Parameter쿼리 스트링이라고도 불리며 key(파라미터의 이름)=value(파라미터의 값) 형태로 구성되어 있다. "?"의 뒤에 나열이 되고 복수의 key를 사용할 때는 "&"기호를 이용한다.

Fragment는 해시태그(Hashtag)나 앵커(Ancher)라고도 불리며 특정 요소를 지시하는데 이용한다. 예를 들어 해시태그로 이동을 원하는 요소의 id를 링크로 연결하면, 스크롤 이동없이 바로 해당 위치로 이동한다.

Port란?

IP 내에서 애플리케이션 상호 구분(프로세스 구분)을 위해 사용하는 번호이다.
포트 숫자IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미한다.
쉽게 말하면 포트는 컴퓨터 안에 설치된 서버에 접속하는 주소!

포트는 아래처럼 생겼다.

http://222.109.62.43:80

222.109.62.43라고 하는 ip에 해당되는 컴퓨터에 http라는 프로토콜로 접속할 것이고 80번 포트를 이용하겠다라는 뜻

참고로 80번 포트는 http, 즉 웹서버를 위한 포트이다. 그래서 URL이 http를 통해 통신을 할 때 자동적으로 80번 포트로 연결이 된다.


참고자료 📚

뷰저블 블로그의 URL 분석하기 시리즈1
[뷰저블 블로그의 URL 분석하기 시리즈2]
IP 주소와 포트(Port)
생활코딩

profile
untiring_dev - Notion 페이지는 정리 중!

0개의 댓글