프로그래밍/Web Basic

HTTP, Stateful과 Stateless

YuminK 2023. 7. 30. 09:28

HTTP(HyperText Transfer Protocol)

HTTP로 전송하는 것들

1. HTML, Text, 이미지, 음성, 영상, 파일

2. JSON, XML 

3. 서버간 데이터

 

HTTP 역사

HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X

• HTTP/1.0 1996년: 메서드, 헤더 추가

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

• RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014)

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

 

기반 프로토콜

TCP: HTTP/1.1, HTTP/2

UDP: HTTP/3

현재 HTTP/1.1을 주로 사용(HTTP/2, HTTP/3도 점점 증가)

 

HTTP 특징

• 클라이언트 서버 구조

• 무상태 프로토콜(스테이스리스), 비연결성

• HTTP 메시지

• 단순함, 확장 가능

Stateful, Stateless 차이

1. Stateful은 서버가 Client의 상태를 저장하는 것을 말한다.

=> 통신하는 서버에 문제가 생기면, 장애 발생

2. Stateless는 서버가 Client의 상태를 저장하지 않는 것을 말한다.

=> 클라이언트가 필요한 정보를 모두 가지고 있는 형태라, 중간에 요청 서버가 변경되어도 문제가 되지 않는다.

서버 증설이 쉽다.

Stateless의 실무 한계

1. 모든 것을 Stateless로 설계하는 것은 무리가 있다.

상태유지: 로그인(로그인한 사용자의 세션, 쿠키)

무상태: 서비스 소개화면

 

2. 가능하면 상태 유지(Stateful)는 적게 설계한다.

 

출처: HTTP 웹 기본 지식 강의(김영한)