세션방식은 Stateless와 상충할까?

Alex·2025년 3월 6일
0

CS를 공부하자

목록 보기
49/74

HTTP 방식은 Stateless한걸 쭉 가져가려고 한다.
이는 곧, 각 요청이 독립적이며 이전 요청과의 관계를 서버가 기억하지 않는다는 의미이다.

여기서 stateless함은 프로토콜 자체가 상태를 유지하지 않는다는 말이다. 즉, 서버 애플리케이션이 클라이언트정보를 저장하는 게 문제가 있다는 것은 아니다.

위키피디아에 따르면, stateless 프로토콜은 수신자(서버)가 세션 정보를 유지 하지 않고, 관련 세션 데이터는 클라이언트가 수신자에게 전송해서 세션의 이전 패킷의 컨텍스트 정보 없이도 전송된 모든 정보 패킷을 독립적으로 이해할 수 있도록 한다.

쉽게 생각하면, Http 프로토콜은 stateless가 맞다. 다만, 이 http는 tcp와 연결되고, ip와 연결되는 등 다른 프로토콜들과 연결이 된다.

그렇기 때문에, http는 stateless할 수 있어도 http와 연결된 다른 프로토콜(+애플리케이션은) stateful할 수 있다. 서버는 세션 관리 매커니즘을 통해서 사용자 상태를 유지할 수 있다.

  • 세션 관리는 HTTP 프로토콜의 stateless 특성과 모순되지 않고, 그 위에 구축된 추가 계층으로 볼 수 있다.

추가)

HTTP는 참고로 Stateful한 기술을 막지 않으며, 그저 stateless여야 한다는 당위성이 있는 게 아니라 http의 특성 정도로 이해하면 될 것같다.

참고자료
Is Http Session contradicted with Http Stateless?

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글