Http(Hyper Text Transfer Protocol)는 말 그대로 하이퍼텍스트를(html 등) 교환하는 프로토콜이다.
요즘은 Http를 이용해서 json, xml, image, video 등 다양한 데이터들을 통신한다.
무상태 프로토콜이라는 것은 말 그대로 상태를 유지하지 않는 프로토콜이라는 뜻이다.
즉 접속한 클라이언트의 상태를 서버에서 보존하지 않아도 된다는 뜻이다.
예시
client A
이 있다. server A
와server B
는 이 클라이언트의 요청에 응답한다.client A
가 결제 요청을 server A
에게 보냈다.server A
에서 장애가 발생해 같은 서비스 중인server B
가 client A
의 요청을 이어서 처리하려고 한다StateFul(상태 유지)이라면 처음 처리 중이던 서버인 server A
가 server B
에게 처리 중이던 프로세스를 인수인계하지 않는다면 클라이언트들은 처음부터 요청을 해야 한다.
반대로 Stateless(무상태) 라면?
상태를 요청하는 클라이언트가 알려주기 때문에 중간에 server가 바뀌더라도 요청을 응답받는데 아무런 지장이 없다.
장점 : 서버를 중간에 바꿔도 클라이언트 입장에서는 상관없기 때문에 언제든지 접속자 수에 따라서 리소스를 늘렸다가 줄였다가 효율적으로 구성할 수 있다.
단점 : 상태 유지와 달리 현재 상태를 클라이언트 각각이 추가 데이터로 전송해야 하는 단점이 있다.
장점 : 클라이언트는 현재 상태를 서버 측으로 추가로 보내지 않고 쭉 프로세스를 이어나갈 수 있다.
단점 : 하지만 중간에 응답 서버가 바뀐다면 위의 장점은 말짱 도루묵이다.