-
[Spring] Web 기초Spring 2025. 3. 18. 21:35
🔎 DNS (Domain Name System)란?
사람이 외우기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 시스템
✅ 왜 필요할까?
- 컴퓨터끼리는 IP 주소로 통신
- 하지만 우리는 192.168.0.1 같은 숫자 못 외움
- google.com, naver.com 같은 도메인 이름으로 쉽게 접속
💡 DNS 작동 과정
- spartacodingclub.kr 도메인을 구매 후 DNS 서버에 등록
- 사용자가 웹 브라우저에 도메인 입력
- DNS 서버가 해당 도메인에 맞는 IP 주소 반환
- IP가 바뀌어도 DNS 서버에서 갱신만 하면 끝!
📌 핵심 포인트
- DNS가 없었다면 우리는 매일 IP 외우느라 머리 터짐
- 도메인 주소는 항상 DNS 서버가 해석해준다
- 우리가 입력하는 https://spartacodingclub.kr → DNS가 IP로 변환해서 접속
✅ URI (Uniform Resource Identifier)
- 웹 상의 모든 자원을 식별하는 고유한 이름
- 페이지, 이미지, 영상, 파일 등 모든 리소스를 가리킬 수 있음
- https://spartacodingclub.kr/ 도 URI의 한 종류
💡 쉽게 말해, '책에 붙은 ISBN' 같은 고유 식별자 개념
✅ URL (Uniform Resource Locator) - 우리가 가장 많이 쓰는 그 주소
- 웹 상에서 리소스의 위치를 나타냄
- https://spartacodingclub.kr/backend 처럼 어디에 있는지 알려주는 역할
📌 URL 구조 분석
https://www.google.com:443/search?q=스파르타+코딩클럽
요소 설명 https 프로토콜 (http보다 보안 강화) www.google.com 호스트 이름 (DNS로 IP로 변환) :443 포트 번호 (생략 가능, https 기본은 443) /search 서버 내 경로 ?q=스파르타+코딩클럽 쿼리 파라미터 (추가 데이터 전송) 📌 쿼리 파라미터란?
- ?로 시작
- &로 여러 개 구분
- 예시: ?key1=value1&key2=value2
✅ URN (Uniform Resource Name) - 거의 안 씀
- 자원의 이름만으로 식별
- 리소스의 위치가 바뀌어도 이름으로 찾는다
- 실제 웹에서 널리 사용되진 않음
🎯 핵심 정리
구분 설명 예시 URI 식별자 전체 개념 https://spartacodingclub.kr URL 위치 정보 포함 https://spartacodingclub.kr/backend URN 이름으로 식별 (거의 안 씀) urn:isbn:1234567890 ✔ URI가 상위 개념, URL과 URN이 하위 개념
✔ 실제 웹 개발할 때는 URL만 잘 알아도 충분!✅ URL 입력 과정
웹 브라우저에 https://www.google.com/search?q=스파르타+코딩클럽을 입력하고 Enter를 눌렀을 때
1️⃣ DNS 조회 - 도메인 → IP로 변환
- 브라우저는 먼저 www.google.com이 무슨 IP인지 찾으려고 DNS 서버로 질문을 보냄
- DNS 서버가 142.250.206.78 같은 IP 주소를 브라우저에게 알려줌
💡 참고
- HTTP 기본 포트: 80
- HTTPS 기본 포트: 443 (보안)
2️⃣ HTTP 요청 생성
브라우저는 아래와 같은 HTTP 요청 메시지를 만듦
GET /search?q=스파르타+코딩클럽 HTTP/1.1 Host: www.google.com User-Agent: Chrome/120.0
3️⃣ 패킷 전송
- 만든 요청을 패킷에 담아 구글 서버로 전송
- 중간에 수많은 네트워크 장비(라우터, 스위치)를 거쳐 도착
4️⃣ 서버 응답 생성
구글 서버가 요청을 받고 처리 후, HTTP 응답 메시지로 결과 응답
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 <html> 검색 결과 페이지 </html>
5️⃣ 브라우저 렌더링
- 받은 HTML을 바탕으로 브라우저가 화면을 그림
- CSS, JS, 이미지 등 추가 요청이 또 발생하고, 그때마다 같은 흐름 반복
🎯 최종 요약 - 이 5단계가 핵심!
- DNS 조회로 IP 찾기
- HTTP 요청 만들기
- 패킷 전송해서 서버로 전달
- HTTP 응답 받고 HTML 받기
- 브라우저 렌더링으로 화면 완성!
'Spring' 카테고리의 다른 글
[Spring] Web Application (1) (0) 2025.03.19 [Spring] RESTful API (0) 2025.03.19 [Spring] HTTP (1) 2025.03.18 [Spring] 네트워크 기초 (1) 2025.03.18