코딩/expressJs

express) Cookie와 Session쓰기

김 숨 2022. 4. 16. 08:43

HTTP 프로토콜 두가지 특징

 - 무상태(Stateless) :  서버는 클라이언트의 상태를 보존하지 않는다(클라이언트의 상태를 모른다)

 - 비연결성(Connectionless) : 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버린다.

 

을 보충하여 상태를 계속 유지하기 위해 위해 사용하는 기능

 

쿠키 

- 쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일

- 클라이언트의 상태 정보를 로컬에 저장했다가, 요청할 때 참조된다. 

- 세션 관리(Session management)서버에 저장해야 할 로그인, 장바구니, 게임 스코어 등의 정보

- 관리개인화(Personalization)사용자 선호, 테마 등의 세팅

- 트래킹(Tracking)사용자 행동을 기록하고 분석하는 용도

 

쿠키의 종류

- session쿠키

  • 현재 세션이 끝날 때 삭제된다. 브라우저는 '현재 세션'이 끝나는 시점을 정의한다.
    (어떤 브라우저들은 재시작할 때 세션을 복원해 세션 쿠키가 무기한 존재할 수 있도록 한다.)

- persistent쿠키

  • Expires 속성에 명시된 날짜에 삭제되거나, Max-Age 속성에 명시된 기간 이후에 삭제된다

세션

웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장 하는 것

일정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술

쿠키를 기반, 사용자 정보 파일을 쿠키와 달리 서버 측에서 관리(사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋다.)

서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지

세션 ID : 클라이언트가 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 부여하는 유일한 ID

사용자가 많아질수록 서버 메모리를 많이 차지하게 됩니다(성능 저하의 원인) => 토큰 활용 


 

세션 설정중 오류 해결(Destory가 안될때)

https://junho85.pe.kr/531

 

express3 -> express4 migration. 세션 destroy

express3 에서는 session destroy 를 할 때 req.session.destroy 함수를 사용 하곤 하였으나 express4 로 오면서 이 함수가 사라졌다. 그래서 session.destroy 함수를 사용 하고 있는 상태에서 express 를 4 로..

junho85.pe.kr