Spring/강의

[📕 기초 Spring] 1-2. Web 기초

가지코딩 2025. 5. 3. 12:07
  • 웹에 접속하는 데 필수적인 역할을 하는 DNS, URI, URL의 개념과 그들이 어떻게 동작하는지, 그리고 각각의 특징에 대해 알아보는 단계이다.

📕 목차

  1. DNS (Domain Name System)
  2. URI (Uniform Resource Identifier)
  3. URL (Uniform Resource Locator)
  4. 브라우저에 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는 URLURN으로 분류할 수 있다
    • URL (Uniform Resource Locator)
      • 자원의 위치를 나타낸다.
      • ex. https://spartacodingclub.kr/에서 https://는 프로토콜, spartacodingclub.kr은 서버의 위치를 나타낸다.
    • URN (Uniform Resource Name)
      • 자원의 이름을 의미한다.
      • 자원의 위치가 변해도 자원의 이름으로 리소스를 식별할 수 있다.
      • URN은 URL처럼 자원에 접근할 수 있는 방법이 대중화되지는 않았다.

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
  • ?query
    • key=value 형태로 쿼리 매개변수를 포함한다.
    • Query Parameter, Query String 이라고도 한다.
    • ?로 시작되고 &으로 구분된다.
    • ex. ?key1=value1&key2=value2.
  • #fragment

4. 브라우저에 URL을 입력하면 어떤 일이 일어날까?

 

1)  https://www.google.com:443/search?q=스파르타+코딩클럽&hl=ko URL을 입력한다.

 

2) DNS 서버를 조회하여 www.google.com 에 해당하는 IP 주소를 응답받는다.

  • 포트 번호는 생략되어있다.
  • https에서 사용되는 PORT443이다.

3) 웹 브라우저에서 HTTP 요청 메세지를 생성한다.

 

4) 요청 패킷(HTTP 메세지가 포함되어 있다)을 구글 서버로 전송한다.

 

5) 구글 서버에서 HTTP 요청 메세지를 기반으로 응답 HTTP 메세지를 만들어 응답한다.

 

6) 응답패킷 도착 → HTML 이 응답으로 온다.

  • 응답 결과가 브라우저에 그려진다.