티스토리 뷰
stateless 에 대한 개념을 알아보고 정리하기 위해 블로그에 글을 남길려고 합니다.
그럼 stateless는 무엇 일까?
HTTP엔 여러 특징 있다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이러한 HTTP의 그 중 특징인 비연결성(Connectionless)과 무상태(StateLess)라는 특징을 가지게 됩니다. 그럼 무상태(Stateless)는 무엇이고 무상태(Stateless)특징을 왜 사용을 하는지에 대해 정리 해보도록한다.
비연결성(Connectionless)
비연결성(Connectionless) 이란 비연결성은 클라이언트와 서버가 한번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치며 맺었던 연결을 꼲어 버리는 성질을 말한다.
HTTP프로토콜은 왜 한번 맺은 연결을 끊어버리는 걸까요? HTTP는 인터넷상 불트정 다수의 통신환경을 기반으로 설게 되었습니다 만약 서버에서 다수의 클라이언트와 연결을 계속 유지해야한다면, 이에 따른 부하와 많은 리소스가 발생하게 된다 따라서 연결을 유지하기 위한 리소스를 줄이면서 더많은 연결을 할 수 있으므르 비연결적 특징을 가지게 된다.
그런데 단점도 존재한다 서버는 클라이언트를 기억하고 있지 않기때문에 동일한 클라이언트 요청에 대해 매번 새로운 연결시도와 해제에 과정에 대한 오버헤드가 발생한다는 단점이 있다.
무상태(Stateless)
무상태란 비연결성으로 인해 서버는 클라이언트를 식별 할 수 없어 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하지 않음을 의미한다. 그래서 Stateless는 서버의 확장성이 높기 때문에 대량의 트래픽이 발생시에도 대처를 수월하게 할수 있다는 장점을 가지고 있다.

Stateful
stateful Server와 Client간 세션의 'State(상태)'에 기반하여 Client에 response를 보냅니다.
세션을 server에 저장하게된다.
- Stateful 방식은 하나의 서버가 1만 명의 클라이언트를 처리할 능력이 있을 때 그보다 많은 수의 클라이언트가 몰리면, 이미 연결된 1만 명의 클라이언트 중 일부가 빠져야 다음 클라이언트가 처리됩니다.
- 하지만 Stateless 방식은 순간 접속 요청 인원을 기준으로 하므로 많은 클라이언트가 몰려도 할당된 처리량이 끝나면 다음 처리가 가능합니다.

참고사이트
https://velog.io/@makeitcloud/%EB%9E%80-Stateless-Stateful-%EC%9D%B4%EB%9E%80
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-Stateful-Stateless-%EC%A0%95%EB%A6%AC
