Daily Dev Q&A: HTTP vs HTTPS

2026. 1. 22. 18:30·Archive/Daily Dev Q&A

Topic (오늘의 주제)

HTTP (HyperText Transfer Protocol) vs HTTPS (HTTP Secure)

Why (왜 사용하는가? 왜 중요한가?)

  • 실무: HTTPS를 적용하지 않으면 사용자의 로그인 정보나 결제 정보가 **평문(Plain Text)**으로 전송되어, 해커가 중간에서 가로채는(Sniffing) 순간 모든 정보가 털립니다.
  • 구조적 의미: HTTP 프로토콜 위에 **SSL/TLS(보안 소켓 계층)**라는 껍데기를 하나 더 씌워서 데이터를 암호화하는 구조입니다.
  • 면접 의도: 단순히 "보안이 좋다"를 넘어, "어떤 방식으로 암호화하는가?(공개키/대칭키)"와 "포트 번호의 차이", "검색 엔진 최적화(SEO)" 관점까지 이해하고 있는지 확인합니다.

Core Concept (핵심 개념 정리)

비교 항목 HTTP HTTPS
개념 정의 텍스트 기반의 통신 규약. 데이터를 있는 그대로 전송함. HTTP에 SSL/TLS 인증서를 추가하여 데이터를 암호화해서 전송함.
보안성 취약함. 네트워크 패킷을 감청하면 내용이 다 보임. 강력함. 감청해도 암호화된 문자열만 보임.
포트 번호 80번 443번
속도 암호화 과정이 없어 이론상 빠름. (미미함) 암호화/복호화 과정(Handshake)이 추가되어 이론상 느림. (단, HTTP/2 사용 시 오히려 더 빠름)
인증서 불필요. SSL 인증서 발급 및 설치 필수 (CA 기관).
SEO (검색) 구글 검색 순위에서 불이익 받음. 구글이 검색 순위 우대 (필수 권장 사항).

Encryption Method (암호화 동작 원리)

HTTPS는 대칭키 암호화와 비대칭키(공개키) 암호화 방식을 혼합해서 사용합니다.

1. 처음 연결할 때 (Handshake): 비대칭키 방식 사용.

  • 서버의 공개키로 "대칭키(비밀키)"를 암호화해서 서버에 보냄. (보안성 높음, 속도 느림)

2. 데이터 주고받을 때 (Session): 대칭키 방식 사용.

  • 서로 공유한 대칭키로 실제 데이터를 암호화/복호화함. (속도 빠름)

Interview Answer Version (면접 답변식 요약)

"HTTP는 데이터를 평문으로 전송하여 보안에 취약한 반면, HTTPS는 SSL/TLS 프로토콜을 통해 데이터를 암호화하여 전송하므로 중간자 공격이나 스니핑으로부터 안전합니다.

HTTP는 80번, HTTPS는 443번 포트를 사용하며, HTTPS는 초기 연결 시에는 비대칭키로 키를 교환하고, 실제 데이터 전송 시에는 대칭키를 사용하는 하이브리드 암호화 방식을 통해 보안과 성능을 모두 확보했습니다. 또한 SEO 측면에서도 HTTPS가 필수적입니다."

Practical Tip (사용시 주의할 점 or 활용 예)

1. Mixed Content (혼합 콘텐츠) 주의

  • HTTPS 사이트 안에서 이미지나 스크립트를 http:// 경로로 로딩하면 브라우저 주소창의 자물쇠가 깨지거나 경고가 뜹니다.
  • 해결: 모든 리소스(img, script, css)의 경로를 https:// 혹은 프로토콜 생략(//example.com/image.png)으로 통일해야 합니다.

2. 비용 문제와 Let's Encrypt

  • 과거에는 SSL 인증서가 비쌌지만, 최근에는 Let's Encrypt 같은 비영리 기관에서 무료로 인증서를 발급해 줍니다. 따라서 개인 프로젝트라도 HTTPS 적용은 선택이 아닌 필수입니다.

3. HTTP/2는 HTTPS가 필수

  • 웹 성능을 획기적으로 높여주는 HTTP/2 프로토콜은 표준상 HTTPS 위에서만 동작합니다. 즉, "HTTPS는 느리다"는 옛말이며, 최신 웹 환경에서는 HTTPS를 써야 HTTP/2의 성능 이점을 누릴 수 있습니다.

예상 꼬리질문 정리

  1. Q: SSL Handshake 과정에 대해 간단히 설명해 주세요.
    • 핵심 키워드: Client Hello(나 이런 암호화 가능해) → Server Hello(인증서 줄게) → 인증서 검증 → Premaster Secret(대칭키 재료) 교환 → Session Key 생성 → 통신 시작.
  2. Q: 대칭키와 공개키(비대칭키) 암호화의 차이는 무엇인가요?
    • 핵심 키워드: 대칭키는 암호화/복호화 키가 같아 빠르지만 키 배송 문제가 있고, 공개키는 키가 서로 달라(공개키/개인키) 안전하지만 연산이 느립니다. 그래서 HTTPS는 둘을 섞어 씁니다.
  3. Q: HSTS(HTTP Strict Transport Security)가 무엇인가요?
    • 핵심 키워드: 사용자가 http://로 접속해도 강제로 https://로 리다이렉트 시키고, 이후 브라우저가 알아서 HTTPS로만 접속하게 강제하는 보안 헤더 설정입니다.

'Archive > Daily Dev Q&A' 카테고리의 다른 글

Daily Dev Q&A: 관계형 데이터베이스의 인덱스  (1) 2026.01.27
Daily Dev Q&A: Cookie vs Session  (0) 2026.01.23
Daily Dev Q&A: GET vs POST (개념 및 데이터 흐름)  (0) 2026.01.21
Daily Dev Q&A: 3-Way Handshake  (1) 2026.01.20
Daily Dev Q&A: TCP vs UDP  (0) 2026.01.20
'Archive/Daily Dev Q&A' 카테고리의 다른 글
  • Daily Dev Q&A: 관계형 데이터베이스의 인덱스
  • Daily Dev Q&A: Cookie vs Session
  • Daily Dev Q&A: GET vs POST (개념 및 데이터 흐름)
  • Daily Dev Q&A: 3-Way Handshake
tlsgkstj
tlsgkstj
짱구의 성장 일기
  • tlsgkstj
    코딩하는 짱구
    tlsgkstj
  • 전체
    오늘
    어제
    • 분류 전체보기 (159)
      • About (1)
      • Projects (35)
        • Personal Projects (21)
        • Team Projects (14)
      • Engineering (20)
        • CS & Tools (0)
        • Backend Core (15)
        • Frontend (1)
        • Infra & Cloud (2)
        • AI & Tools (1)
      • Trouble Shooting & Issues (0)
      • Growth & Career (38)
        • Interview Prep (0)
        • Retrospectives (38)
      • Archive (65)
        • TIL (8)
        • Daily Dev Q&A (56)
  • 블로그 메뉴

    • 홈
    • About
    • Projects
    • Tech Stack
    • Dev Log
    • GitHub
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    REACT
    SpringBoot
    backend
    커리어리셋
    jpa
    network
    데브페스트
    aws_s3
    클로드코드
    Spring비교
    Project_Review
    til
    프로덕트개발자
    DevFestIncheon2025
    경기기후바이브코딩
    프로젝트회고
    spring
    java
    devlog
    OrphanRemova
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
tlsgkstj
Daily Dev Q&A: HTTP vs HTTPS
상단으로

티스토리툴바