이 둘은 네트워크 프로토콜로서 클라이언트와 서버간의 네트워크 통신이 어떻게 이루어지는 지에 대한 개념입니다.
클라이언트/서버 세션은 단일 클라이언트와 서버 간에 일정한 기간 동안 발생하는 일련의 관련 상호작용입니다.
확립된 세션이 있으면 서버는 각 요청과 연관된 클라이언트를 식별합니다.
무수한 요청에 대해 특정 클라이언트를 기억할 수 있습니다.
한 세션 내에서, 클라이언트가 서버에 전송할 데이터 정보를 의미합니다.
서버는 세션 유지 시간이 지나거나, 클라이언트가 전송하려했던 데이터를 모두 수신할 때 까지 클라이언트와의 세션 상태를 유지합니다.
세션이 종료될 때 까지, 클라이언트의 세션 정보를 저장하는 네트워크 프로토콜입니다. 다음은 stateful의 예시들입니다.
TCP 프로토콜
TCP는 클라이언트와 서버간 3-way handshaking (연결 확정, 데이터 전송, 연결 종결)로 이루어져 있습니다.
클라이언트와 서버간 연결 확정 후, 데이터를 전송하고 데이터 전송이 끝나면 연결이 종결됩니다.
온라인 뱅킹
은행(서버)은 고객(클라이언트)의 인증 정보(세션 상태)와 결제 내역(세션 정보)을 가지고 있습니다.
장점
단점
scale-up과 scale-out에 대한 정보 알아보기
서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않는 네트워크 프로토콜입니다. 즉, 요청에 대한 응답만 처리하는 방식입니다. 각 통신은 선행되거나 후속으로 따라오는 통신과 관련이 없습니다. 클라이언트가 송신하려 했던 모든 데이터가 서버 쪽에 수신 되었는지 확인하지 않습니다.
UDP 프로토콜
UDP는 서버가 클라이언트의 세션 상태 및 세션 정보 없이 요청에 대한 응답만을 수행하는 네트워크 프로토콜입니다.
온라인 검색
검색창에 질문을 입력하다가 요청이 중단되어도 다시 검색하면 됩니다.
장점
확장성이 좋습니다. 서버가 클라이언트의 세션 상태 및 세션 정보를 저장하지 않기 때문에 확장성이 좋습니다.
단점
서버가 세션 상태 및 세션 정보를 저장하지 않기 때문에 클라이언트 측에서 송신할 데이터의 양이 많아집니다.
[참고]
https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%83%81%ED%83%9C_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
https://wooono.tistory.com/366
https://www.ibm.com/docs/ko/sva/9.0.6?topic=overview-session-state-concepts
https://tecoble.techcourse.co.kr/post/2021-10-12-scale-up-scale-out/
https://jjy0821.tistory.com/36