고구마맛탕먹고싶다
2024. 9. 5. 13:52
HTTP
HTTP (Hypertext Transfer Protocol)
웹에서 데이터를 주고받는 통신 프로토콜
브라우저가 요청을 보내면 서버가 데이터를 응답
HTTP 1.0
HTTP 1.0
- 단일 연결, 단일 요청
하나의 요청에 하나의 연결 사용 → RTT(왕복 시간) 증가
- RTT 문제 해결
- 이미지 스플리팅 : 압축된 이미지 다운로드
- 코드 압축 : 코드 크기 최소화
- 이미지 문자열 인코딩
HTTP 1.1
- 지속 연결
한 번의 연결로 여러 파일 송수신 → RTT 감소.
- HOL Blocking 문제
무거운 헤더로 인한 성능 저하 문제
패킷 처리가 완료되지않으면 그 뒤에 패킷이 지연되는 현상
→ 파이프라이닝(Pipelining) : 다수의 요청을 연속적으로 보내는 기능
HTTP 2.0
HTTP 2.0
- 멀티플렉싱
하나의 연결에서 여러 요청 동시 처리 가능. 여러개의 스트림 사용
- 헤더 압축
허프만 코딩 이용
HTTPS
- HTTP + SSL/TLS
HTTP 2.0은 HTTPS 위에서 동작
데이터를 암호화하여 안전한 통신 제공
SSL은 TLS로 발전하며, 보안 및 성능이 개선. 현재 TLS 1.3이 최신 버전으로, 연결 수립 속도가 빠르고 보안성이 높음
- 보안 기술
사이퍼 슈트 : 다양한 암호화 알고리즘의 조합
CA 인증서 : 신뢰할 수 있는 기관이 발급한 인증서 기반
디피-헬만 키 교환 : 안전한 암호화 키 교환 알고리즘
SHA-256 : 강력한 해싱 알고리즘으로 데이터 무결성 보장
HTTPS 구축 방법
- CA 인증서 기반 서비스 구축
- SSL/TLS 인증서 발급
- 서버에 인증서 설치: 웹 서버(Apache, Nginx 등)에 설치
- 보안 설정 강화: SSL/TLS 설정
- 로드 밸런서 사용
- 로드 밸런서 설정
- HTTPS 종료(TLS Termination): 로드 밸런서에서 SSL/TLS 암호화를 해제(종료)하여 서버 간 통신을 최적화
- 안정성 및 확장성 향상: 로드 밸런서를 통해 서버의 부하를 줄이고, 시스템의 안정성과 확장성을 강화
- CDN(Content Delivery Network) 이용
- CDN 설정
- HTTPS 적용: CDN에서도 SSL/TLS 인증서를 적용
- 속도 및 보안 강화: CDN을 통해 웹 페이지 로딩 속도를 개선, DDoS 공격 보호
HTTP 3.0
HTTP 3.0
- QUIC 프로토콜 기반
UDP 위에서 동작하여 TCP 기반보다 빠른 전송 가능
- 연결 복구
QUIC 프로토콜은 연결이 끊겼다가도 기존의 상태를 유지한 채 빠르게 재연결 가능, 모바일 환경에서 특히 유리
QUIC
기존 TCP와 TLS 프로토콜이 가지는 비효율적인 라운드 트립 시간을 줄이기 위해 UDP를 기반으로 설계된 전송 계층 프로토콜
- 스트림 멀티플렉싱 : 여러 스트림을 하나의 연결 안에서 관리, 헤드 오브 라인 블로킹 문제 완화
- 보안과 암호화 : 모든 패킷은 암호화되어 전송, 패킷 헤더도 암호화
- 손실 복구 및 흐름 제어 : 손실된 패킷을 재 전송할 때 새 패킷 번호를 부여해 모호성 제거, 흐름 제어 및 혼잡 제어 기능 존재
구글은 QUIC을 크롬 브라우저와 유튜브 앱에 적용하여 테스트하여 효과를 봄