오늘은 stateless를 기본적으로 갖춘 http 환경 속에서 웹은 어떻게 로그인 정보를 기억할 수 있을까?그럼 쿠키와 세션이라는 존재를 알고 있어야 한다!
비연결지향(Connectionless)
상태정보 유지 X(Stateless)
Connetionless, Stateless 상태에서는 접속한 사용자가 이전에 접속했던 사용자와 같은 지 알 수 없음
지속적인 연결이 없기 때문에 리소스의 낭비는 줄일 수 있으나, 매 통신마다 클라이언트는 인증을 해야하는 단점
이러한 상황을 보완하기 위한 기술이 바로 쿠키와 세션!
쿠키는 사용자의 인증 정보를 웹 브라우저(클라이언트)에 저장하고 Request 시에 그 정보를 함께 보내서 사용자를 식별할 수 있도록 도움
클라이언트가 서버에 로그인 요청
서버는 클라이언트의 request의 유효성을 확인하고 헤더에 set-cookie: user= 을 추가하여 response
클라이언트는 이후 서버에 요청 시 기존에 전달받은 쿠키를 request 시 자동으로 header에 추가하여 요청
방문한 웹 페이지에 '아이디, 비밀번호를 저장하시겠습니까?'라고 나타나는 것
쇼핑몰 장바구니
브라우저가 종료되기 전까지 클라이언트의 요청을 유지하게 해주는 기술
클라이언트가 서버에 로그인 요청
서버는 유효성 확인 후 클라이언트의 sessionid를 저장
서버는 response header에 set-cookie: sessionid:a1x2fjz 를 추가하여 전달
클라이언트는 이후의 request 시 sessionid:a1x2fjz 쿠키를 자동으로 header에 추가하여 전달
서버는 sessionid 값을 저장소에서 찾은 후 요청을 처리하고 응답
저장 위치
보안
라이프사이클
속도