HTTP/1.1, HTTP2, HTTP3의 각 특징을 알아보고 ,관련된 개념도 같이 알아보자
HTTPS와 HTTP의 차이를 이해하기위해 Stateful<-> Stateless개념과 Connectionless도 알아야 한다.
HTTP
- Hyper Text Transfer Protocol의 약자
- WWW(world-wide-web) 상에서 클라이언트와 서버간 통신하게 하는 프로토콜
- 하이퍼텍스트
- 웹상에서 조냊하는 web page끼리 참조하는 기술
- 웹상에서 HyperText는 http도 표현함
- TCP, UDP를 사용, 포트는 80번사용
1.특징
2.Stateless의 장점
- 확장성 향상
- 서버가 클라이언트의 상태를 보관하지 않으므로
- 매 요청마다 어떤 서버가 처리가능하다. 로드 밸런싱과 서버 증설이 용이
- 서버 부하 감소
- 세션, 사용자 상태를 메모리에 저장하지 않기떄문에 서버자원 사용량이 줄어드나.
- 단순한 설계
- 요청이 완전한 독립 단위이므로 서버로직이 단순해짐
- 장애 대응 용이
- 상태를 저장하지 않기 때문에 한 서버가 다운되더라도 다른 서버에서 처리가능
- 세션복제(Replication), 동기화가 필요 없다.
- 캐시 활용성
- 동일한 요청은 항상 같은 응답을 보장하므로 클라이언트- 중간 프록시 - CDN에서 효율적으로 캐싱가능
- CDN이란? Content Delivery Network의 약자로, 콘텐츠 전송 네트워크을 말한다. 전 세계에 분산된 서버 네트워크를 통해 웹사이트 및 애플리케이션의 콘텐츠를 사용자에게 더 빠르고 효율적으로 전달하는 기술. 예를 들면 유튜브가 있다. 각 국에 서버를 두고 콘텐츠를 제공한다.
3.Stateless와 Stateful 비교
- Statetul이 먼저 탄생하였으며 이를 보안하고자 등장한게 Stateless이다.
- 초창기 대부분 웹은 Statefule 서버 구조
- 서버가 사용자 세션을 메모리나 Db에 저장하고 다음 요청시 세션을 기반으로 로직을 처리했다.
- 그러나 문제가 있음
- 확장성 한계 - 서버를 여러 대 두면 세션 동기화를 무조건 여러 서버간 해야했고 그로 인해 서비스 처리 속도가 저하되는 문제가 있다.
- 장애 복구 어려움 - 세션을 가진 서버가 다운되면 사용자가 다시 웹상에서 로그인해야 정상동작이 가능
- 인프라 비용 증가 - 상태 저장 동가화용 스토리지와 네트워크의 부하가 증가했다.
4.Stateless의 등장
- Stateless에서는 동일한 요청이 항상 동일한 응답을 반환한다.
- 서버가 상태 정보를 중간에 있는 캐시 서버가 CDN이 저장하여 Stateless이지만 재사용이 가능해졌다.
- REST아키텍처는 HTTP의 무상태성 Stateless을 적용함
- 장점 :
- 수평확장이 극대화 Horizontal Scaling
- AWS, GCP 와 같은 클라우트 스토리지 환경에서는 수평확장이 필수 개념임
- CDN, 캐시 서버 적극 활용가능
- CDN이란? CDN은 컨텐츠전송네트워크라는 말 그대로이며, CDN이 해당응답을 전 세계 엣지 서버에 저장하여 요청오면 가장 가까운 엣지서버(가장 끝)에서 즉시 응답한다.
- 캐시서버란? 사용자를 식별하기 위해서는 상태값을 저장해야하는데 stateless에서는 요청에 필요한 정보를 파라미터나 헤더로 함께 전달한데 이때 캐시서버는 URL + 쿼리스트링을 key로 응답 저장해둔다. 그래서 DB작업없이 수천건의 요청을 캐시에서 바로 처리한다.
- 실제 사례 :
- 유튜브 : 영상 스트리밍 url이 stateless 설계이다. 전 세계 CDN에 분산저장한다. 사용자가 영상을 클릭하면 가장 가까운 CDN엣지서버애서 즉시 스트리밍을 시직한다.
- 아마존 : 상품 상세 API가 Stateless이며, CDN와 Redis 캐시로 전세계에 100ms 속도로 응답한다.
- 효과 :
- 지연시간Latency 이 감축 → 요청이 Origin서버까지 가지 않고 가까운 캐시 / 엣지 서버에서 응답한다.
- 서버 부하가 감소 → 동일한 요청에 대한 응답은 DB 애플리케이션 서버을 거치치 않음
- 전 세계 동일 성능 제공 가능 → 사용자의 위치와 무관하게 거의 동일한 속도를 보인다.
http1, http2, http3가 순서대로 등장
HTTP/1.1
특징
- TCP기반
- 연결당 1개 요청
- 지연시간 높다.
- Persist Connection( 커낵션 재사용)
- 파이프라이닝
- 웹 초창기 , 단순한 html 이미지 제공
한계
- Head-of-Line Blocking, 한 요청이 지연되면 같은 연결에 있는 다른 요청도 대기해야한다.
- 리소스가 많으면 다중 연결TCP 필요 → 네트워크 부하 증가
HTTP/2·3와 HTTPS: HTTP/2 이상은 사실상 TLS를 필수적으로 사용.
HTTP/2
특징
- TCP
- 멀티플렉싱
- 지연시간 낮다.
- Binary프로토콜, 텍스트 대신 바이너리로 전달하여 파싱 효율이 향상
- 멀티플렉싱, 하나의 TCP 연결에서 병렬처리 가능
- 헤더압축 : 중복 헤더를 최소화하여 전송량을 절감했다.
- 한 연결에서 벙렬 처리하여 리소스 로딩 속도가 향상
한계
- TCP기반이라서 패킷 손실시 전체 스트림이 지연된다.
- http/1.1에서 한계점이었던 Head-of-Line Blocking문제를 완전히 해결하지 못했다.
HTTP3
특징
- UDP 기반 전송 프로토콜 → 3-way-handshake안함
- 멀티플렉싱 + 독립 스트림
- 지연시간이 가장 낮다.
- 기존 http1, http2을 개선함
- 패킷손실에도 독립 스트림처리하기 떄문에 Head-of-Line Blocking문제를 완전히 해결
- 0-RTT연결 : 재접속시 handshake없이 즉시 전송해서 커넥션 생성-폐기로 인한 오버헤드가 없다.
- TLS내장되어 보안
- 모바일에 적합하다. 왜냐하면 모바일은 네트워크가 불안정하기 때문에 패킷 손실복구 가능 필요, 핸드오버
단점
RTT
- Round-Trip Time의 약자로 요청보내고 응답받는데 걸리는 시간이다.

캐시 서버
설명
- 웹 서비스 속도 향상을 위해 자주 요청되는 데이터를 임시저장하는 서버
- 사용자에 가장 가까운곳에 위치하여 데이터접근 속도를 높이고, 서버부하를 줄인다.
- CDN에서 활용된다.
CDN
설명
- Content Delivery Network
- 전세게에 위치한 데이터베이스 서버이며 전 세게 곳곳에 위치하여 데이터를 여러 서버에 분산하여 저장하는 분산 서버 네트워크 시스템을 말한다.
CDN동작방법
-
CDN 구성요소
-
오리진 서버 : 기존 서버
-
엣지 서버 : 분산 서버이며, 오리진 서버의 콘텐츠를 캐싱, 근접위치의 사용자에게 컨텐츠를 재공한다.
-
DNS 서버 : Origin 서버와 Edge서버 중간에 위치하여 연결하는 역할을 한다. 요청이 발생한 위치로 부터 최단거리의 위치한 Edge서버로 라우팅한다.

*Reference : Toss Payment 개발자 센터 커뮤니티
버전별 차이알아두기