쿠키, 세션

서린·2024년 5월 11일

혼자개발

목록 보기
82/82

클라이언트와 서버가 HTTP통신을 하면서 로그인처럼 접속을 했던 정보의 저장이 필요할 때가 있다.
이때 인증과 인가가 필요하다.

인증은 클라이언트에서 보낸 정보에 담긴 아이디와 패스워드가 서버에서 저장하고 있는 정보와 일치할 때 발생한다.
사용자가 자신의 계정으로 글을 쓰거나 물건을 사는 등 사용자 인증이 필요한 요청을 할 때
서버는 인증이 된 클라이언트에게 쿠키 또는 session을 발급해주고 클라이언트는 이를 요청 정보에 담아 보냄으로써 지속적인 인증 없이 요청들을 수행할 수 있다.

쿠키

서버에서 필요한 정보를 지정하면 클라이언트 측에서 저장을 하고 HTTP 요청마다 메세지에 담아 보내는 방식.
서버에 메모리 부담을 줄일 수 있지만 요청시 쿠키 내부에 있는 보안 정보들이 그대로 노출 될 수 있어 보안상의 문제가 있고, 쿠키의 크기가 크면 네트워크 부하가 커질 수 있다.
사용자가 보안상 쿠키 수집을 거절할 경우 사용이 불가능하고 웹 브라우저마다 지원 형태가 달라 호환이 안된다.
요청속도가 빠르다.

세션

인증된 사용자의 정보를 session id와 매핑해 서버에 저장하고
클라이언트에게 식별자와 문자열로 이루어진 session id를 응답헤더에 넣어 전송한다.
매 응답마다 session id만 보내기 때문에 네트워크 부하가 커지지 않고
서버에 저장되므로 클라이언트의 웹 브라우저 호환성 문제가 해결된다.
많은 정보를 유지할 수 있지만 서버에 데이터 저장량이 많아지므로 서버 메모리에 부담 될 수 있다.
서버에서 처리하기 때문에 요청속도가 쿠키에 비해 느리다.

0개의 댓글