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가 필요한 이유
- IP 주소는 외우기 어렵다
- 각 사이트는 고유한 IP 주소를 가지며, 숫자로 이루어져 있어 외우기 어렵습니다.
- 예를 들어, 172.217.161.142 대신 www.google.com을 입력하면 쉽게 접속할 수 있습니다.
- IP 주소는 변경될 수 있다
- 많은 가정에서 사용하는 IP는 유동 IP(변경되는 IP)이므로, IP가 바뀌면 기존 IP 주소로 접속이 불가능합니다.
- 그러나 DNS를 사용하면, 변경된 IP 주소를 DNS 서버에서 자동으로 갱신할 수 있어 문제를 해결할 수 있습니다.
🔹 DNS의 동작 과정
- 원하는 이름의 도메인을 구매 후, DNS 서버에 등록한다.
- 사용자는 웹 브라우저에서 https://spartacodingclub.kr/을 입력합니다.
- DNS 서버는 해당 도메인에 해당하는 IP 주소를 조회하여 반환합니다.
- 반환된 IP 주소를 기반으로 웹 서버에 접속하여 데이터를 가져옵니다.
💡 우리가 URL을 입력하면 자동으로 DNS가 IP 주소를 찾아주는 과정이 실행됩니다.
2️⃣ URI(Uniform Resource Identifier)란?
URI는 인터넷 상의 자원(Resource)을 식별하는 고유한 문자열입니다.
🔹 URI의 구성 요소
- Uniform: 자원을 식별하는 통일된 방식
- Resource: 페이지, 텍스트, 이미지, 동영상 등
- Identifier: 식별자 역할
🔹 URI의 세부 개념
- URL(Uniform Resource Locator)
- 인터넷 자원의 위치(주소)를 나타냅니다.
- 예: https://spartacodingclub.kr/
- 브라우저에서 흔히 입력하는 도메인 주소가 바로 URL입니다.
- 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을 입력하면 다음과 같은 과정이 실행됩니다.
- DNS 조회
- 브라우저는 www.google.com의 IP 주소를 찾기 위해 DNS 서버에 요청을 보냅니다.
- 예를 들어, 142.250.190.78 같은 IP 주소를 반환받습니다.
- 웹 서버에 HTTP 요청 전송
- 브라우저는 반환된 IP 주소를 사용하여 구글 서버에 HTTP 요청을 보냅니다.
- "스파르타 코딩클럽을 검색해 주세요!"
- 구글 서버가 응답 생성
- 구글 서버는 요청을 확인하고, 해당하는 검색 결과 페이지를 생성합니다.
- 브라우저가 응답을 렌더링
- 응답을 받은 브라우저는 HTML, CSS, JavaScript 등의 데이터를 해석하여 사용자가 볼 수 있도록 화면을 구성합니다.
💡 우리가 브라우저에 URL을 입력하면 자동으로 이 모든 과정이 실행됩니다.
✅ 요약
- DNS는 도메인 이름을 IP 주소로 변환하는 시스템입니다.
- URI는 인터넷 자원을 식별하는 문자열이며, **URL(위치 기반)과 URN(이름 기반)**으로 나뉩니다.
- URL은 https://www.google.com/search?q=스파르타+코딩클럽과 같은 구조로 구성됩니다.
- 웹 브라우저에서 URL을 입력하면 DNS 조회 → HTTP 요청 → 서버 응답 → 웹 페이지 렌더링 과정이 진행됩니다.
💡 추가 정보
✅ DNS 서버가 없으면, 웹사이트 접속 시 직접 IP 주소를 입력해야 합니다.
✅ HTTP와 HTTPS의 차이점은 **보안(SSL/TLS 적용 여부)**입니다.
✅ URL의 Query String을 활용하면 웹 페이지의 필터링 및 검색 기능을 강화할 수 있습니다.