[Express.js] express-session 세션?

CatF·2022년 11월 8일
0

WEB

목록 보기
1/3

세션과 쿠키

HTTP 프로토콜은 기본적으로 비연결성 프로토콜이다. 클랴이언트가 서버에 Request를 보내면 서버는 요청에 해당되는 Response를 보내고 연결을 끊는 처리형태를 가지고 있다.
또한 상태정보를 유지 하지 않는 Stateless 형태의 프로토콜이다. 즉, Http를 이용하여 정보를 주고 받으면 클라이언트가 페이지를 이동할 때 마다 서버에 다시 로그인 요청을 해야 하는 등의 문제가 발생한다.
이를 해결하기 위해서 클라이언트와 서버의 정보 유지를 위해서 세션과 쿠키를 사용한다.

쿠키

쿠키는 클라이언트가 서버의 웹 사이트를 방문할 경우 사용자의 컴퓨터에 저장하는 정보 저장 데이터라고 할 수 있다.

  1. 우선 사용자가 웹 사이트에 접속하게 되면
  2. 웹 서버가 쿠키를 생성하여 HTTP 파일과 함께 클라이언트에게 전송하고,
  3. 클라이언트는 받은 쿠키를 Local storge에 저장하고 있다가, 서버에 요청을 할 때 이 쿠키를 다시 전송한다.

쿠키는
"1주일간 이 창을 다시 보지 않기" (쿠키가 저장된 시각으로부터의 경과로 판단) 기능을 구현 할 때 에도 유용하게 사용된다.

세션

세션(session)이란 방문자가 웹 서버에 접속해 있는 상태를 유지하기 위해서 정보를 저장하는 단위라고 할 수있다. 세션은 웹 서버에 저장되는 쿠키와 비슷하다

  1. 사용자가 웹 사이트에 접속한다.
  2. 서버는 클라이언트의 요청 헤더에 session-id가 포함되어 있는지 확인한다.
  3. session-id가 포함되어 있지 않는다면 새로운 session-id를 생성하여 사용자에게 전달하고, session-id를 서버의 쿠키로 만들어 저장한다.
    3-1 session-id가 포함되어 있다면 서버의 session-id를 확인 하여 쿠키를 읽는다.
  4. 서버는 세션의 쿠키에 저장된 정보를 이용하여 클라이언트에게 응답을 전달한다.

로그인 같은 보안이 필요한 작업들에 주로 사용된다.

차이점

간단히 말하지면 쿠키세션 모두 웹 통신 사이에서 유지시키고자 하는 정보를 저장하기 위해서 사용되는 것이고, 가장 큰 차이점은 저장되는 위치이다.

쿠키는 클라이언트의 PC에 저장되는 정보.
세션은 웹 서버에 저장되는 정보. 라고 할 수 있다.

특징쿠키(Cookie)세션(Session)
저장 위치클라이언트의 로컬 저장소웹 서버의 저장소
저장 형식텍스트 형식오브젝트 형식
만료 시점쿠키 저장 시 설정
(브라우저가 종료되도 만료되지 않으면 삭제되지 않음)
브라우저 종료 시 삭제
(만료 시간 설정 가능)
용량 제한도메인 하나당 20개, 각각 4KB서버가 정하는 용량 만큼
속도세션보다 빠르다쿠키보다 느리다
보안세션보다 낮음세션보다 높음
profile
프론트엔드 개발자

0개의 댓글