TIL- 공부편/COMPUTER SIENCE

📌TIL23 TIL: DNS와 URL의 개념 및 동작 원리

creator7087 2025. 3. 18. 17:25

1️⃣ DNS(Domain Name System)란?

 DNS(Domain Name System)는 사람이 이해할 수 있는 도메인 이름을 컴퓨터가 읽을 수 있는 IP 주소로 변환하는 역할을 합니다.
예를 들어, www.google.com을 입력하면 DNS가 해당 도메인의 IP 주소를 찾아 반환해 주기 때문에 사용자가 직접 IP 주소를 외울 필요가 없습니다.

🔹 DNS가 필요한 이유

  1. IP 주소는 외우기 어렵다
    • 각 사이트는 고유한 IP 주소를 가지며, 숫자로 이루어져 있어 외우기 어렵습니다.
    • 예를 들어, 172.217.161.142 대신 www.google.com을 입력하면 쉽게 접속할 수 있습니다.
  2. IP 주소는 변경될 수 있다
    • 많은 가정에서 사용하는 IP는 유동 IP(변경되는 IP)이므로, IP가 바뀌면 기존 IP 주소로 접속이 불가능합니다.
    • 그러나 DNS를 사용하면, 변경된 IP 주소를 DNS 서버에서 자동으로 갱신할 수 있어 문제를 해결할 수 있습니다.

🔹 DNS의 동작 과정

  1. 원하는 이름의 도메인을 구매 후, DNS 서버에 등록한다.
  2. 사용자는 웹 브라우저에서 https://spartacodingclub.kr/을 입력합니다.
  3. DNS 서버는 해당 도메인에 해당하는 IP 주소를 조회하여 반환합니다.
  4. 반환된 IP 주소를 기반으로 웹 서버에 접속하여 데이터를 가져옵니다.

💡 우리가 URL을 입력하면 자동으로 DNS가 IP 주소를 찾아주는 과정이 실행됩니다.


2️⃣ URI(Uniform Resource Identifier)란?

URI는 인터넷 상의 자원(Resource)을 식별하는 고유한 문자열입니다.

🔹 URI의 구성 요소

  • Uniform: 자원을 식별하는 통일된 방식
  • Resource: 페이지, 텍스트, 이미지, 동영상 등
  • Identifier: 식별자 역할

🔹 URI의 세부 개념

  1. URL(Uniform Resource Locator)
    • 인터넷 자원의 위치(주소)를 나타냅니다.
    • 예: https://spartacodingclub.kr/
    • 브라우저에서 흔히 입력하는 도메인 주소가 바로 URL입니다.
  2. URN(Uniform Resource Name)
    • 인터넷 자원의 이름을 의미합니다.
    • 위치가 변경되어도 이름을 기반으로 자원을 찾을 수 있습니다.

💡 URL은 자원의 위치를 기반으로 하지만, URN은 이름을 기반으로 검색합니다.


3️⃣ URL의 구조

URL은 특정한 형식에 따라 구성됩니다.

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

🔹 URL의 구성 요소

구성 요소설명예시
Scheme 프로토콜(HTTP, HTTPS, FTP 등) https://
User[:Password] (사용자 정보) 특정 사용자 계정 정보 (보안 문제로 잘 사용되지 않음) user:pass@
Host 도메인 이름 또는 IP 주소 www.google.com
Port 네트워크 포트 (일반적으로 생략) :443 (HTTPS의 기본 포트)
Path 리소스의 위치 /search
Query 검색어나 필터 등 추가 정보( key-value 형태 ) ?q=스파르타+코딩클럽
Fragment 특정 문서 내 위치 지정 #section1

💡 예제 URL 분석

  • https:// → 보안이 적용된 HTTP(Scheme)
  • www.google.com → Google 도메인(Host)
  • :443 → HTTPS의 기본 포트
  • /search → 검색 요청을 처리하는 경로(Path)
  • ?q=스파르타+코딩클럽 → '스파르타 코딩클럽'을 검색하는 Query
더보기

Fragment는 비교적 사용을 하지 않습니다


4️⃣ 브라우저에 URL을 입력하면 어떤 일이 발생할까?

우리가 https://www.google.com을 입력하면 다음과 같은 과정이 실행됩니다.

  1. DNS 조회
    • 브라우저는 www.google.com의 IP 주소를 찾기 위해 DNS 서버에 요청을 보냅니다.
    • 예를 들어, 142.250.190.78 같은 IP 주소를 반환받습니다.
  2. 웹 서버에 HTTP 요청 전송
    • 브라우저는 반환된 IP 주소를 사용하여 구글 서버에 HTTP 요청을 보냅니다.
    • "스파르타 코딩클럽을 검색해 주세요!"
  3. 구글 서버가 응답 생성
    • 구글 서버는 요청을 확인하고, 해당하는 검색 결과 페이지를 생성합니다.
  4. 브라우저가 응답을 렌더링
    • 응답을 받은 브라우저는 HTML, CSS, JavaScript 등의 데이터를 해석하여 사용자가 볼 수 있도록 화면을 구성합니다.

💡 우리가 브라우저에 URL을 입력하면 자동으로 이 모든 과정이 실행됩니다.


요약

  • DNS는 도메인 이름을 IP 주소로 변환하는 시스템입니다.
  • URI는 인터넷 자원을 식별하는 문자열이며, **URL(위치 기반)과 URN(이름 기반)**으로 나뉩니다.
  • URLhttps://www.google.com/search?q=스파르타+코딩클럽과 같은 구조로 구성됩니다.
  • 웹 브라우저에서 URL을 입력하면 DNS 조회 → HTTP 요청 → 서버 응답 → 웹 페이지 렌더링 과정이 진행됩니다.

💡 추가 정보

✅ DNS 서버가 없으면, 웹사이트 접속 시 직접 IP 주소를 입력해야 합니다.
✅ HTTP와 HTTPS의 차이점은 **보안(SSL/TLS 적용 여부)**입니다.
✅ URL의 Query String을 활용하면 웹 페이지의 필터링 및 검색 기능을 강화할 수 있습니다.