http (3)

HTTP 역사

HTTP/1.1
1997년: 가장 많이 사용, 우리에게 가장 중요한 버전

HTTP/2
2015년: 성능 개선

HTTP/3
진행중: TCP 대신에 UDP 사용, 성능 개선

현재는 HTTP1.1 주로 사용

HTTP 특징

클라이언트 서버 구조
무상태 프로토콜
비연결성
HTTP 메세지
단순함, 확장가능

클라이언트 서버구조

Request, Response 구조
클라이언트는 서버에 요청을 보내고, 응답을 대기
서버가 요청에 대한 결과를 만들어서 응답

무상태 프로토콜(Stateless)

서버가 클라이언트의 상태를 보존하지 않음
장점은 서버 확장성이 높음(Scale out)
단점은 클라이언트가 추가 데이터를 전송해야함

Stateful, Stateless 차이

Stateful: 중간에 다른 서버로 바뀌면 안된다
Stateless: 중간에 다른 서버로 바뀌어도 된다

  • 갑자기 클라이언트 요청으 증가해도 서버를 대거 투입할 수 있음
  • 무한서버 증설가능

실무한계

하지만 모든 걸 무상태로 설계할 수는 없다
상태유지는 최소한만 사용

비연결성

HTTP는 기본이 연결을 유지하지 않는 모델
일반적으로 초 단위 이하의 빠른 속도로 응답
서버 자원을 매우 효율적으로 사용할 수 있음

비연결성의 한계와 극복

TCP/IP 연결을 새로 맺어야함 - 3way handshake 시간 추가
지금은 HTTP 지속연결로 문제 해결
HTTP/2, HTTP/3 에서 더 많은 최적화

profile
클린코드와 UX를 생각하는 비즈니스 드리븐 소프트웨어 엔지니어입니다.

0개의 댓글