CS/네트워크

HTTP/HTTPS 란?

ari0930 2025. 5. 2. 00:11

HTTP란?

  • 웹 상에서 클라이언트와 서버가 자원을 주고받기 위해 사용하는 통신 규약입니다.
  • HTTP는 HyperText Transfer Protocol의 약자로, 하이퍼텍스트 기반의 데이터를 전송합니다.
  • OSI 7 계층 중 애플리케이션 계층에 속하며, TCP/IP 위에서 동작합니다.
  • 비연결성(Connectionless) 기반의 프로토콜로, **요청(Request)**과 **응답(Response)**을 통해 통신합니다.

HTTP 작동 방식

HTTP는 요청/응답 구조로 동작합니다.
클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 보내고 즉시 연결을 종료합니다.

이처럼 매 요청은 독립적으로 이루어지며, 이전의 상태를 유지하지 않습니다.


HTTP의 단점

  1. 비연결성 (Connectionless)
    • 요청과 응답이 완료되면 서버는 연결을 끊습니다.
    • 이전 요청 상태를 기억하지 않기 때문에, 매번 인증 등의 부가 정보가 필요합니다.
  2. 무상태성 (Stateless)
    • 서버는 각 요청 간의 상태를 저장하지 않습니다.
    • 이를 보완하기 위해 쿠키, 세션, 토큰 등의 기술이 사용됩니다.
  3. 보안 취약성
    • HTTP는 데이터를 암호화하지 않기 때문에, 중간자 공격(MITM) 등 보안 위협에 노출될 수 있습니다.
    • 이러한 문제를 해결하기 위해 HTTPS가 등장했습니다.
  4. 속도 지연
    • 매 요청마다 TCP 연결을 새로 생성/종료하기 때문에, 다수의 요청 시 성능 저하가 발생할 수 있습니다.
    • HTTP/1.1에서는 Keep-Alive 연결을 통해 이를 개선했고, HTTP/2부터는 동시 요청 처리 기능이 추가되었습니다.

HTTPS란?

HyperText Transfer Protocol Secure

  • HTTP의 보안성 문제를 보완하기 위해 만들어진 프로토콜입니다.
  • SSL/TLS 암호화 기술을 통해 데이터를 보호하며, 신원 인증 및 데이터 무결성까지 제공합니다.

공개키(PKI) 암호화란?

  • 공개키와 비밀키라는 서로 다른 두 키를 사용하는 암호화 방식입니다.
  • 공개키는 누구에게나 공개되며, 비밀키는 오직 본인만 가지고 있습니다.
  • 예시:
    • A가 B의 공개키로 데이터를 암호화하면
    • 오직 B만이 자신의 비밀키로 이를 복호화할 수 있습니다.
    • 👉 즉, 공개키로 암호화된 데이터는 대응되는 비밀키 없이는 절대 해독할 수 없습니다.

SSL(Secure Sockets Layer)이란?

  • 공개키 기반 암호화(PKI) 방식을 사용하며,
  • **CA(Certificate Authority)**라는 공인된 제3 자가 발급한 SSL 인증서를 통해 웹 서버의 신원을 검증합니다.
  • 현재는 보안이 강화된 **TLS(Transport Layer Security)**가 대부분 사용됩니다.

TLS(Transport Layer Security)란?

  • SSL의 발전된 버전으로, 현재 HTTPS 통신의 표준입니다.
  • 클라이언트와 서버 간 데이터를 암호화, 무결성 검증, 상호 인증하여 안전한 통신을 보장합니다.

TLS의 3대 특징

  1. 암호화(Encryption)
    → 데이터가 전송 중에 외부에 노출되지 않도록 암호화합니다.
  2. 무결성(Integrity)
    → 전송된 데이터가 중간에 변경되지 않았음을 보장합니다.
  3. 인증(Authentication)
    → 서버(또는 클라이언트)의 신원을 인증하여 신뢰할 수 있는 통신이 가능하도록 합니다.
반응형

'CS > 네트워크' 카테고리의 다른 글

[네트워크]TCP/IP란?  (0) 2025.06.14
[네트워크]TCP/IP 와 OSI7 계층  (0) 2025.06.14
REST API란  (0) 2025.05.03
[네트워크] 쿠키와 세션  (0) 2025.03.23