Spring/강의
[📕 기초 Spring] 1-2. Web 기초
가지코딩
2025. 5. 3. 12:07
- 웹에 접속하는 데 필수적인 역할을 하는 DNS, URI, URL의 개념과 그들이 어떻게 동작하는지, 그리고 각각의 특징에 대해 알아보는 단계이다.
📕 목차
- DNS (Domain Name System)
- URI (Uniform Resource Identifier)
- URL (Uniform Resource Locator)
- 브라우저에 URL을 입력하면 어떤 일이 일어날까?
1. DNS (Domain Name System)
DNS (Domain Name System)
- 도메인 이름과 IP 주소를 상호 변환하는 시스템
- 사용자가 사람이 읽을 수 있는 도메인 이름을 입력하면, DNS는 이를 컴퓨터가 이해할 수 있는 IP 주소로 변환하여 웹사이트에 접속할 수 있도록 한다.
DNS 등장 배경
- 컴퓨터 간 통신을 위해 IP 주소가 필요하다.
- IP 주소는 사이트마다 고유하고, 외우기 어려운 긴 숫자들이다. 또한, IP 주소가 변경되면 사용자는 새로운 주소를 알지 못하면 접근할 수 없다.
- IP 주소는 변경될 수 있다.
- 가정에서 사용하는 유동 IP는 주기적으로 변경된다. 만약 IP 주소가 바뀌면, 그에 맞는 새로운 IP를 알아내지 않으면 사이트에 접속할 수 없다.
DNS 동작 순서
- 도메인 이름을 구매하고 DNS 서버에 등록한다.
- 사용자가 도메인 이름을 입력하면, DNS 서버는 해당 도메인에 매핑된 IP 주소를 반환한다.
- IP 주소가 변경되면, DNS 서버에 등록된 IP 주소만 업데이트하면 된다.
- 우리는 IP 주소 대신 도메인 이름(예: https://spartacodingclub.kr/)으로 웹사이트에 접속한다.
2. URI (Uniform Resource Identifier)
URI (Uniform Resource Identifier)
- 인터넷 자원을 식별하는 고유한 문자열이다.
- URI는 URL과 URN으로 분류할 수 있다
- URL (Uniform Resource Locator)
- 자원의 위치를 나타낸다.
- ex. https://spartacodingclub.kr/에서 https://는 프로토콜, spartacodingclub.kr은 서버의 위치를 나타낸다.
- URN (Uniform Resource Name)
- 자원의 이름을 의미한다.
- 자원의 위치가 변해도 자원의 이름으로 리소스를 식별할 수 있다.
- URN은 URL처럼 자원에 접근할 수 있는 방법이 대중화되지는 않았다.
- URL (Uniform Resource Locator)
3. URL (Uniform Resource Locator)
URL (Uniform Resource Locator)
- 웹에서 자원의 위치를 정의하는 문자열로, 자원에 접근할 때 사용된다.
- URL은 프로토콜, 도메인 이름, 경로 등을 포함한다.
URL 구조
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
ex. https://www.google.com:443/search?q=스파르타+코딩클럽
URL 구성 요소
- scheme
- URL의 프로토콜을 나타낸다
- 보통 http, https, ftp 등이 사용된다.
- 참고: https는 보안을 추가한 http이다.
- user[:password]
- URL에 포함된 사용자 정보를 나타낸다.
- 보안상의 이유로 사용하지 않는 것이 일반적이다.
- host[:port]
- 서버의 도메인 이름 또는 IP 주소를 나타낸다.
- 보통 포트 번호는 생략되며, HTTP는 80번, HTTPS는 443번 포트를 사용한다.
- /path
- 자원의 경로를 나타낸다.
- 계층 구조로 구성되어있다.
- ex. https://nbcamp.spartacodingclub.kr/backend
- ?query
- key=value 형태로 쿼리 매개변수를 포함한다.
- Query Parameter, Query String 이라고도 한다.
- ?로 시작되고 &으로 구분된다.
- ex. ?key1=value1&key2=value2.
- #fragment
- html 내부 북마크 등에 사용한다.
- 전달받은 URL로 접속 시 특정 위치(fragment)로 이동할 수 있다.
- ex. http://www.google.com/index.html#image
4. 브라우저에 URL을 입력하면 어떤 일이 일어날까?
1) https://www.google.com:443/search?q=스파르타+코딩클럽&hl=ko URL을 입력한다.
2) DNS 서버를 조회하여 www.google.com 에 해당하는 IP 주소를 응답받는다.
- 포트 번호는 생략되어있다.
- https에서 사용되는 PORT는 443이다.
3) 웹 브라우저에서 HTTP 요청 메세지를 생성한다.
4) 요청 패킷(HTTP 메세지가 포함되어 있다)을 구글 서버로 전송한다.
5) 구글 서버에서 HTTP 요청 메세지를 기반으로 응답 HTTP 메세지를 만들어 응답한다.
6) 응답패킷 도착 → HTML 이 응답으로 온다.
- 응답 결과가 브라우저에 그려진다.