본문 바로가기
네트워크

[네트워크] HTTP와 HTTPS

by 적용1 2025. 5. 4.
728x90

HTTP(HyperText Transfer Protocol)

정의

  • HTTP는 서버/클라이언트 모델에 따라 HTML, 이미지, 영상 등 다양한 리소스를 주고 받기 위한 프로토콜이다.
  • 기본적으로 TCP 포트 80번을 사용한다.

작동 방식

  • 클라이언트가 서버에 요청(Request)를 보내고,
  • 서버가 응답(Response)을 보내는 방식으로 작동한다.

특징

  • 평문 통신 : 데이터가 암호화되지 않고 전송된다. (보안 취약성)
    즉, 중간에 누군가 통신 내용을 엿보거나 조작할 수 있다.
  • 빠르고 가볍지만, 보안에 취약하다. (무결성 문제)
  • 서버의 신원을 확인하는 기능이 없어, 제 3자가 서버로 위장하여 클라이언트와 통신할 수 있다.
  • 상태를 가지고 있지 않은 Stateless 프로토콜이다.

HTTPS(HyperText Transfer Protocol Secure)

정의

  • HTTP에 SSL/TLS와 같은 보안 프로토콜이 추가된 프로토콜이다.
  • 데이터를 주고 받을 때 암호화를 적용하여 보안을 강화한 버젼이다.
  • TCP 포트 443번을 사용한다.

작동 방식

  • SSL과 TLS 방식이 있지만, 최근에는 SSL의 보안 상의 문제로 인해 TLS만 사용한다. 즉, HTTPS를 사용하기 위해서는 TLS 핸드쉐이크 과정을 거쳐야 한다.
  1. 클라이언트가 서버에 연결을 요청(HTTPS 요청)
  2. 서버는 인증서를 제공
  3. 클라이언트가 인증서를 검사하고, 서버와 비밀 키를 교환한다.(여기서 대칭키 생성)
  4. 그 후 실제 데이터는 대칭키로 암호화되어 전송된다.

2025.05.04 - [네트워크] - [네트워크] TLS Handshake

특징

  • 암호화 : 제 3자가 내용을 볼 수 없다.
  • 무결성 : 데이터가 중간에 변조되지 않았는지 확인 가능하다.
  • 인증 : 사용자가 신뢰 가능한 서버와 통신 중인지 확인 가능하다.

HTTPS를 사용하는 이유

  • 민감한 데이터를 주고받기 위해 반드시 필요하다.
  • SEO(검색 엔진 최적화)에 더 유리하다.
728x90

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

[네트워크] TLS Handshake  (0) 2025.05.04