[네트워크] 웹의 언어 HTTP와 HTTPS

2026. 3. 1. 22:56·CS

웹을 사용하면서 우리는 매일같이 브라우저 주소창에 URL을 입력합니다. 그 순간 보이지 않는 곳에서 수많은 통신이 오가는데, 그 중심에 있는 것이 바로 HTTP입니다. 오늘은 HTTP가 무엇인지, 왜 HTTPS가 필요한지, 그리고 그 기반이 되는 TLS까지 차근차근 설명해보겠습니다.

1. HTTP란 무엇일까?

HTTP(HyperText Transfer Protocol) 는 이름 그대로 하이퍼텍스트를 주고받기 위한 약속(프로토콜)입니다. 여기서 하이퍼텍스트란 '하이퍼링크'라는 논리적 연결을 통해 다른 문서나 리소스로 바로 이동할 수 있도록 구조화된 텍스트를 말합니다. 우리가 웹페이지에서 링크를 클릭하면 다른 페이지로 이동하는 것도 이 하이퍼텍스트 개념 덕분입니다.

HTTP는 기본적으로 클라이언트-서버 모델을 사용하는 요청-응답(Request-Response) 프로토콜입니다.

  • 브라우저가 어떤 URL을 요청하면, 서버는 HTML 파일, 이미지, 동영상 등의 리소스를 응답 메시지에 담아 전달합니다.

HTTP는 네트워크 7계층 중 가장 위 단계인 응용 계층(Application Layer)에서 작동합니다. 즉, 웹 브라우저와 서버가 서로를 이해하기 위해 사용하는 '최상위 언어'인 셈이죠. 하지만 실제로 데이터를 실어 나르는 거친 일은 하위 계층인 TCP(전송 제어 계층)가 담당하며 HTTP는 이 TCP 연결 위에서 데이터를 안전하게 주고받습니다.

 

2. HTTP 헤더

HTTP 메시지에는 실제 데이터(본문) 외에도 HTTP 헤더라는 중요한 정보가 포함됩니다. 브라우저와 서버는 이 헤더를 읽어 요청의 목적이나 데이터의 성격(형식, 길이 등)을 파악합니다.

응답 메시지에는 다음과 같은 정보가 포함됩니다:

  • 콘텐츠 타입 (HTML인지, 이미지인지 등), 캐시 여부, 쿠키 정보, 서버 정보

또한, 서버는 요청의 결과를 숫자로 된 상태 코드로 알려줍니다.

  • 200 OK : 요청 성공
  • 301 Moved Permanently : 영구 이동
  • 404 Not Found : 리소스를 찾을 수 없음
  • 500 Internal Server Error : 서버 내부 오류

 

3. 왜 HTTPS가 필요할까?

일반적인 HTTP는 프라이버시에 매우 취약합니다. 데이터가 암호화되지 않은 텍스트로 전송되기 때문이죠. 이럴 경우 ISP(인터넷 서비스 제공자)가 제어하는 라우터나 공용 와이파이의 중개 장치 등에서 누군가 우리의 데이터를 훔쳐보거나(스니핑), 심지어 내용을 수정(변조)할 수도 있습니다. 이를 해결하기 위해 등장한 것이 바로 HTTPS(HTTP Secure)입니다.

 

HTTPS는 간단히 말하면 다음과 같습니다

HTTPS = HTTP + TLS

 

HTTPS는 데이터를 전송하기 전 메시지를 '암호화된 봉투' 에 넣는다고 생각하면 쉽습니다. 이 봉투 안에는 메시지 본문뿐만 아니라 HTTP 헤더 정보까지 숨겨져 있습니다. 단, 목적지를 찾아가야 하므로 발신 및 대상 IP 주소는 암호화하지 않습니다.

 

4. TLS (전송 계층 보안)

과거에는 SSL이라는 용어를 썼지만 지금은 이를 개선한 TLS(Transport Layer Security) 가 표준입니다. TLS는 웹사이트뿐 아니라 이메일, 채팅, 그리고 QUIC, DoH 같은 최신 네트워크 프로토콜에서도 기본적으로 사용됩니다.

TLS의 주요 역할은 크게 세 가지입니다.

  • 프라이버시: 전송 중인 데이터를 제3자가 읽을 수 없게 암호화합니다.
  • ID 검증: 내가 대화하는 상대가 진짜 그 서버가 맞는지 확인합니다.
  • 무결성: 데이터가 중간에 유실되거나 변조되지 않았는지 점검합니다.

 

헨드셰이크(Handshake) 과정

데이터를 주고받기 전, 클라이언트와 서버는 TLS 핸드셰이크 과정을 거칩니다.

  1. 서버는 자신의 공개키가 포함된 인증서를 보냅니다.
  2. 클라이언트는 이를 검증합니다.
  3. 양측은 공유 비밀 키(세션 키)를 생성합니다.

 

5. 인증 기관(CA)과 디지털 인증서

"이 서버가 가짜면 어떡하지?"라는 의심을 해결하기 위해 인증 기관(CA, Certificate Authority) 라는 신뢰할 수 있는 제3자 조직이 존재합니다.
CA는 서비스 운영자에게 디지털 인증서를 발급합니다. 이 인증서는 해당 서버가 특정 공개키의 실제 소유자임을 증명합니다.

 

디지털 인증서: 서비스 운영업체가 CA로부터 발급받는 일종의 '신분증'입니다. 여기에는 서버 이름, 소유자 ID, 서버의 공개키, 그리고 CA의 암호화 서명이 들어있습니다.

 

브라우저는 접속하려는 사이트의 인증서가 믿을만한 CA에서 발급된 것인지 확인하여 신뢰를 보장합니다.

 

TLS의 취약점

TLS는 매우 강력한 보안 체계이지만 완벽하지는 않습니다. 만약 CA 자체가 해킹당해 훼손되거나 강제로 위조된 인증서가 발급되는 상황이 발생할 수 있습니다. 클라이언트가 부주의하게 이 위조 인증서를 수락하면 공격자의 낚시(피싱)나 중간자 공격에 넘어갈 위험이 있으므로 항상 주의가 필요합니다.

저작자표시 비영리 변경금지 (새창열림)

'CS' 카테고리의 다른 글

[네트워크] SNI와 암호화 기법  (0) 2026.03.08
[네트워크] 도메인 이름은 어떻게 IP 주소로 변환될까?  (0) 2026.02.08
[네트워크] 인터넷의 정보는 어떻게 움직일까  (0) 2026.02.01
[네트워크] 인터넷에서 기기는 어떻게 통신할까?  (0) 2026.01.25
[네트워크] 기기는 어떻게 네트워크에 연결될까?  (0) 2026.01.17
'CS' 카테고리의 다른 글
  • [네트워크] SNI와 암호화 기법
  • [네트워크] 도메인 이름은 어떻게 IP 주소로 변환될까?
  • [네트워크] 인터넷의 정보는 어떻게 움직일까
  • [네트워크] 인터넷에서 기기는 어떻게 통신할까?
수웅
수웅
  • 수웅
    야금야금 공부
    수웅
  • 전체
    오늘
    어제
    • 분류 전체보기 (90) N
      • 코딩 (3)
      • 알고리즘 (48)
      • CS (15) N
      • 취준 (1)
      • 안드로이드 (17)
        • 코틀린 (6)
        • 정리 (10)
        • 프로젝트 (0)
      • Error (1)
      • Git (2)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
수웅
[네트워크] 웹의 언어 HTTP와 HTTPS
상단으로

티스토리툴바