[네트워크] 웹사이트 접속 과정 – DNS, HTTP, HTTPS, TLS

2025. 8. 17. 21:22·CS

1. 도메인 이름 체계(DNS)

인터넷에 접속할 때 복잡한 숫자로 된 IP 주소 대신 `www.example.com` 같은 사람이 읽기 쉬운 도메인 이름을 사용한다. DNS(Domain Name System)는 이런 도메인 이름을 계층적으로 관리한다. 각 계층은 관리 책임이 다른 구역(Zone)으로 나뉘며, 이를 명칭 공간(namespace)이라 부른다.

  • 서브도메인: `en.wikipedia.org`에서 `en`은 위키피디아의 영어판을 의미하는 서브도메인이다.
  • 도메인 이름: `.wikipedia` 같은 이름은 국제인터넷주소관리기구(ICANN)이 관리하고, 도메인 등록 대행 업체(register)를 통해 누구나 구매할 수 있다.
  • 최상위 도메인(TLD): `.com, .org, .net` 같은 일반 도메인과 `.kr, .jp, .uk` 같은 국가 코드 도메인이 있다.

 

2. 도메인 이름을 IP 주소로 변환하기

1️⃣ 로컬 DNS 변환기(Local DNS Resolver)

  • 컴퓨터는 먼저 로컬 DNS 변환기에게 해당 도메인의 IP 주소를 물어본다.
  • 이 변환기는 보통 집에서 사용하는 홈 라우터나 ISP가 제공하는 DNS 서버다.
  • 여기서 말하는 DNS 서버 주소는 우리가 흔히 설정하는 `8.8.8.8(Google DNS)`, `1.1.1.1(Cloudflare DNS)` 같은 것이다.

2️⃣ 루트 서버(Root Server)

  • 로컬 DNS 변환기가 답을 모르면, 루트 서버에 질의한다.
  • 루트 서버는 해당 도메인의 최상위 도메인(TLD, Top-Level Domain) 서버 주소를 알려준다.

3️⃣ TLD 서버(Top-Level Domain Server)

  • `.com, .org, .kr` 같은 최상위 도메인을 관리한다.
  • TLD 서버는 다시 해당 도메인을 관리하는 권한 있는 네임 서버(Authoritative Name Server) 의 주소를 알려준다.

4️⃣ 권한 있는 네임 서버(Authoritative Name Server)

  • 최종적으로 특정 도메인(example.com)에 대한 IP 주소를 실제로 보관·관리하는 서버다.
  • 이 서버가 최종 응답으로 실제 IP 주소를 반환한다.

 

3. 하이퍼텍스트 전송 규약(HTTP)

HTTP(Hypertext Transfer Protocol)는 웹에서 정보를 주고받는 규약이다.

  • 클라이언트-서버 모델: 사용자가 브라우저(클라이언트)로 요청을 보내면, 서버가 응답을 보낸다.
  • 응용 계층 프로토콜: HTTP 자체는 “언어” 역할을 하고, 실제 데이터 전송은 하위 계층인 TCP가 담당한다.
  • 요청과 응답: 브라우저가 서버에 요청을 보내면, 서버는 응답 메시지와 함께 HTML, JSON 같은 데이터를 돌려준다.
  • HTTP 헤더: 데이터 유형, 브라우저 정보, 운영체제, 콘텐츠 유형 등 부가 정보를 담고 있다.

 

 

4. 보안 HTTP(HTTPS)

HTTP는 평문으로 데이터를 주고받기 때문에 중간에 노출될 위험이 있다. 이를 보완한 것이 HTTPS다.

  • HTTPS는 데이터를 전송하기 전 암호화된 봉투에 넣어 보낸다.
  • IP 주소 같은 라우팅 정보는 암호화하지 않지만, 실제 메시지와 헤더는 보호된다.
  • 암호화에는 TLS(전송 계층 보안, Transport Layer Security) 프로토콜이 사용된다.

 

 

5. 전송 계층 보안(TLS)

TLS는 클라이언트와 서버 사이의 통신을 안전하게 만드는 핵심 기술이다.

  • 핸드셰이크: 통신을 시작할 때 서버와 클라이언트가 비밀 키를 주고받아 이후 모든 데이터를 암호화한다.
  • 인증서: 서버는 신뢰할 수 있는 기관(CA, Certificate Authority)에서 발급받은 디지털 인증서를 통해 자신이 진짜임을 증명한다. 인증서에는 서버 이름, 공개키, 소유자 정보 등이 들어 있다.
  • 취약점: CA 자체가 공격을 당하거나 위조 인증서가 발급될 경우, 보안 체계가 무너질 수 있다.

 

 

6. 암호 기법

1) 데이터 서명(Digital Signature, 인증)

  • 데이터가 위·변조되지 않았음을 증명하고, 발신자가 누구인지 인증하는 기술.
  • 예: JWT 서명, 인증서 서명, 소프트웨어 패키지 서명.

2) 암호화 (Encryption)

  • 평문(Plaintext) → 읽을 수 없는 암호문(Ciphertext) 으로 변환하는 과정.
  • 반대로 암호문을 평문으로 되돌리는 과정을 복호화(Decryption)라고 한다.
  • 암호화 알고리즘은 키(Key) 라는 매개변수를 사용하여 데이터를 변환한다.
대칭키 암호: 암호화와 복호화에 동일한 비밀 키를 사용하는 방식
비대칭키 암호 (공개키 암호): 공개키(Public Key) 와 개인키(Private Key) 한 쌍을 사용하는 방식, 
공개키로 암호화한 데이터는 해당 개인키로만 복호화할 수 있음.

 

 

 

7. 전송 암호화

  • 데이터(패킷)가 네트워크를 통해 이동할 때 전송 경로 자체를 암호화하는 것.
  • 대표적으로 TLS(Transport Layer Security) 가 사용된다.
  • TLS는 HTTPS, 이메일, 메시징 등 대부분의 네트워크 통신 보안에 적용된다.
한계
- TLS는 “전송 중인 연결”만 암호화한다.
- 데이터가 서버에 도착해 저장된 이후에는 평문일 수도 있음.
- 공격자가 중간자 공격(MITM, Man-in-the-Middle)을 시도하면, 수신자인 척 위장해 데이터를 탈취할 위험이 있다.

 

 

8. 순방향 비밀성

  • 과거 통신 데이터가 나중에 키가 유출되더라도 복호화되지 않도록 보장하는 기능.
  • 방법: 각 통신 세션마다 새로운 단기 세션 키(Ephemeral Key) 를 생성하여 사용한다.
  • 이 세션 키는 일회성이므로, 통신이 끝나면 폐기된다. 따라서 탈취한 패킷도 나중에 복호화할 수 없다.

 

 

 

 

 

✍️ 『읽자마자 IT 전문가가 되는 네트워크 교과서』의 내용을 참고해 정리한 글입니다.

 

 

 

 

'CS' 카테고리의 다른 글

[네트워크] 데이터를 전송하는 방법 - UDP, TCP, QUIC  (1) 2025.08.03
[네트워크] 인터넷에서 정보가 이동하는 구조 - BGP, IXP  (3) 2025.07.27
[네트워크] 인터넷에서 기기가 통신하는 방법 – 패킷, 프로토콜, NAT  (0) 2025.07.18
[네트워크] 기기가 네트워크에 연결되는 과정  (0) 2025.07.07
'CS' 카테고리의 다른 글
  • [네트워크] 데이터를 전송하는 방법 - UDP, TCP, QUIC
  • [네트워크] 인터넷에서 정보가 이동하는 구조 - BGP, IXP
  • [네트워크] 인터넷에서 기기가 통신하는 방법 – 패킷, 프로토콜, NAT
  • [네트워크] 기기가 네트워크에 연결되는 과정
oniwon
oniwon
  • oniwon
    눙눙의 개발일지
    oniwon
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Java
      • Spring
      • CS
      • Infra
      • Projects
      • F-Lab
      • Airflow
  • 인기 글

  • 블로그 메뉴

    • 홈
    • 개인정보처리방침 (Privacy Policy)
    • 블로그 소개 (About)
  • 최근 글

  • 태그

    Flab후기
    JVM
    DAG
    자바 다형성
    Flab추천인코드
    SSE
    Flab 3주차 후기
    자바면접
    Flab커넥터스
    redis
    에프랩멘토링
    네트워크
    병렬 처리
    자바백엔드
    https
    F-Lab
    커넥터스2385
    FLAB
    동시성
    에프랩
    tls
    Flab 멘토링
    Flab 추천인코드
    Flab멘토링
    자바 내부 동작
    Airflow
    dns
    비동기 처리
    inconcert
    Java
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
oniwon
[네트워크] 웹사이트 접속 과정 – DNS, HTTP, HTTPS, TLS
상단으로

티스토리툴바