본문 바로가기

쿠키와 세션

by 참새는 짹짹 2021. 1. 15.

http 통신은

대표적인 stateless protocol(무상태 프로토콜)로서

요청간 사용자 데이터를 저장하는 수단을 제공하지 않는다

이는 http의 또 하나의 특징인 비연결성 때문인데

http는 클라이언트 요청에 서버가 응답을 마치면 연결을 계속 유지하지 않고

끊어 버린다

💡
만일, 끊지 않고 다수의 클라이언트와의 연결을 모두 유지하게 된다면 많은 리소스가 발생하고 그만큼 동시에 가능한 연결이 줄어들기 때문이다

따라서, 상태를 저장하기 위한 수단으로 쿠키세션을 사용하게 된다

쿠키


클라이언트에 저장하기 위해 만들어진 "키 : 값" 형태의 묶음

흔히 브라우저에서 말하는 쿠키가 이 쿠키를 의미한다

기능적으로는 단순하게 "키 : 값" 형태로 문자열을 저장하고 있고

이를 통해 서버와 데이터를 주고 받거나 상태를 유지할 수 가 있다

http 헤더에 담아 주고 받으며

주요 특징은 아래와 같다

  • 특징
    • 문자열 값만 저장할 수 있다
    • 기본은 브라우저의 생존 주기와 같지만 생존 주기를 설정하여 브라우저가 종료 되어도 살아 있을 수 있다
    • 클라이언트의 요청시 특정 url에만 쿠키를 전송할 수 있도록 쿠키 별로 설정할 수 있다

세션


서버에서 사용자가 웹 서버에 접속해 있는 동안 사용자 정보를 저장하는 방법

서버에서 사용자 별로 쓸 수 있는 저장소 마련해두어

이를 통해 사용자의 접속이 종료 될 때까지 상태를 유지한다

네트워크 OSI 7계층에도 세션 계층이 있는데

이 계층이 송수신 메시지를 대화로서 유지해주는 것과 같이

여기서 세션도 마치 클라이언트와 서버가 계속 연결된 것과 같이 만들어준다

사용자 정보를 저장하여 사용하는 방법은 아래와 같다

  1. 사용자가 웹 서버에 최초 접속시 응답으로 사용자를 식별하기 위한 세션 id를 쿠키에 담아 클라이언트에 보낸다

  1. 사용자가 웹 서버 내에 다른 페이지를 탐색하거나 브라우저를 종료하지 않고 다시 웹 서버에 접속한다
    💡
    이 때, 같은 사용자의 요청이라고 인식할 최대 시간을 설정할 수 있다 설정한 시간이 초과 되면 새로운 사용자로 인식하고 새 세션 id를 발급한다

  1. 브라우저는 세션 id를 담은 쿠키를 웹 서버에 전송하고 서버는 세션 id별로 구분된 저장소에서 해당 세션 id에 저장된 데이터를 꺼낸다

참고


서블릿/JSP 강의 28 - WAS가 현재사용자(Session)을 구분하는 방식
좋아요~ 꾸욱...조회수가 안나오던 이 강의가 하루 2~3 조회수가 나오는 쾌거(?)를 거두었습니다.조회수가 나오는 이상 꾸준히 업로드 해보도록 하겠습니다. 감사합니다.이 강의를 제공하는 "뉴렉(newlec)"쌤은 통신모듈, COM 콤포넌트 개발, 게임, 보안 모듈 개발을 시작으로...
https://youtu.be/q9nQCnM4NAI

'' 카테고리의 다른 글

OAuth 2.0  (0) 2021.01.11

댓글