세션과 쿠키의 웹서버와의 흐름

JaeGu Jeong·2022년 11월 8일
0

로그인

웹페이지서 구매, 글작성, 게시글 삭제 등 사용자 정보가 필요한 행동을 수행 할 때, 매번 아이디와 로그인을 입력하면 불편할 것이다.
그래서 로그인을 한번만하면 다음 요청에서는 서버가 로그인정보를 가지고 있게되어 클라이언트는 불필요한 작업을 줄일 수 있다.

http에서 데이터 흐름

클라이언트에서 로그인을 하면 request로 서버가 세션정보(아이디, 비밀번호, 그외 사용자정보)를 가지고 쿠키를 만들게되고, 이어서 서버는 response를 하면서 세션id가 담긴 cookie정보를 보낸다. 클라이언트는 다음 request때 이 쿠키를 이용하여 서버에 구매요청과 같은 로그인이 필요한 서비스를 요청하면 서버는 가지고있던 세션id와 비교해서 승인 또는 거절을 한다.

웹서버가 쿠키를 저장하는 방식?

대부분의 웹서버는 ram에 데이터를 저장한다. 서버에서 웹서버프로그램이 무한루프로 돌면서 쿠키를 처리해야 하면 웹서버프로그램의 프로세스에 동적할당하는 방식으로 이루어 지는 것 같다.

여러개의 서버와 세션

트래픽이 많은 서비스는 서버를 여러개두고 로드밸런스서버로 트래픽을 조절하는데 램에 세션정보를 저장하는 방식은 서버가 바뀌면 로그인이 풀리기 때문에 로드밸런스서버는 로그인성공하면 클라이언트는 로그인한 서버로만 통신하도록 코딩해주어야한다. 만약 비디오서비스서버같은 서버의 역할이 분리되어 있다면 이전의 로드밸런스서버로 컨트롤이 어려움으로 세션서버를 만들어 어느 서버에 사용자가 접근하든 로그인세션에 확인 할 수 있도록 만들어야한다.

세션서버에 과부하 해결

세션서버를 늘리고 세션id의 구간을 정해서 서버를 운영한다.
하지만 서버를 늘리는 것은 비용과 비례하므로 서버의 부담이 매우적은 jwt를 사용하는 방법이 있다.

profile
BackEnd Developer

0개의 댓글