고구마맛탕먹고싶다 2024. 9. 5. 13:52

HTTP

HTTP (Hypertext Transfer Protocol)

웹에서 데이터를 주고받는 통신 프로토콜

브라우저가 요청을 보내면 서버가 데이터를 응답

HTTP 1.0

HTTP 1.0

  1. 단일 연결, 단일 요청

하나의 요청에 하나의 연결 사용 → RTT(왕복 시간) 증가

  1. RTT 문제 해결
    1. 이미지 스플리팅 : 압축된 이미지 다운로드
    2. 코드 압축 : 코드 크기 최소화
    3. 이미지 문자열 인코딩

HTTP 1.1

  1. 지속 연결

한 번의 연결로 여러 파일 송수신 → RTT 감소.

  1. HOL Blocking 문제

무거운 헤더로 인한 성능 저하 문제

패킷 처리가 완료되지않으면 그 뒤에 패킷이 지연되는 현상

→ 파이프라이닝(Pipelining) : 다수의 요청을 연속적으로 보내는 기능

HTTP 2.0

HTTP 2.0

  1. 멀티플렉싱

하나의 연결에서 여러 요청 동시 처리 가능. 여러개의 스트림 사용

  1. 헤더 압축

허프만 코딩 이용

HTTPS

  1. HTTP + SSL/TLS

HTTP 2.0은 HTTPS 위에서 동작

데이터를 암호화하여 안전한 통신 제공

SSL은 TLS로 발전하며, 보안 및 성능이 개선. 현재 TLS 1.3이 최신 버전으로, 연결 수립 속도가 빠르고 보안성이 높음

  1. 보안 기술

사이퍼 슈트 : 다양한 암호화 알고리즘의 조합

CA 인증서 : 신뢰할 수 있는 기관이 발급한 인증서 기반

디피-헬만 키 교환 : 안전한 암호화 키 교환 알고리즘

SHA-256 : 강력한 해싱 알고리즘으로 데이터 무결성 보장

HTTPS 구축 방법

  1. CA 인증서 기반 서비스 구축
    • SSL/TLS 인증서 발급
    • 서버에 인증서 설치: 웹 서버(Apache, Nginx 등)에 설치
    • 보안 설정 강화: SSL/TLS 설정
  2. 로드 밸런서 사용
    • 로드 밸런서 설정
    • HTTPS 종료(TLS Termination): 로드 밸런서에서 SSL/TLS 암호화를 해제(종료)하여 서버 간 통신을 최적화
    • 안정성 및 확장성 향상: 로드 밸런서를 통해 서버의 부하를 줄이고, 시스템의 안정성과 확장성을 강화
  3. CDN(Content Delivery Network) 이용
    • CDN 설정
    • HTTPS 적용: CDN에서도 SSL/TLS 인증서를 적용
    • 속도 및 보안 강화: CDN을 통해 웹 페이지 로딩 속도를 개선, DDoS 공격 보호

HTTP 3.0

HTTP 3.0

  1. QUIC 프로토콜 기반

UDP 위에서 동작하여 TCP 기반보다 빠른 전송 가능

  1. 연결 복구

QUIC 프로토콜은 연결이 끊겼다가도 기존의 상태를 유지한 채 빠르게 재연결 가능, 모바일 환경에서 특히 유리

QUIC

기존 TCP와 TLS 프로토콜이 가지는 비효율적인 라운드 트립 시간을 줄이기 위해 UDP를 기반으로 설계된 전송 계층 프로토콜

  1. 스트림 멀티플렉싱 : 여러 스트림을 하나의 연결 안에서 관리, 헤드 오브 라인 블로킹 문제 완화
  2. 보안과 암호화 : 모든 패킷은 암호화되어 전송, 패킷 헤더도 암호화
  3. 손실 복구 및 흐름 제어 : 손실된 패킷을 재 전송할 때 새 패킷 번호를 부여해 모호성 제거, 흐름 제어 및 혼잡 제어 기능 존재

구글은 QUIC을 크롬 브라우저와 유튜브 앱에 적용하여 테스트하여 효과를 봄