[정리] 세션과 쿠키

shininghyunho·2021년 5월 27일
0

CS

목록 보기
5/8

HTTP의 특징으로는 stateless가 있다. 상태 정보를 저장하지 않는다. 매번 연결을 할때마다 새롭게 연결을 해야한다.

그래서 서버는 이전 요청과 현재 요청이 같은 사용자의 요청인지 알수가 없다.
HTTP 프로토콜이 상태를 유지하기 위한 기술이 쿠키와 세션이다.

쿠키(Cookie)

쿠키는 클라이언트 로컬 환경에 저장되는 키와 벨류형태의 파일이다.
쿠키의 이름 값, 유효 시간, 경로(쿠키를 전송할) 등을 포함한다.
즉 클라이언트의 상태 정보를 브라우저에 저장하는 것이다.

동작방식

출처:https://doooyeon.github.io/2018/09/10/cookie-and-session.html

  1. 웹 브라우저가 서버에 요청을 보낸다

  2. 상태를 유지하고 싶은 값을 쿠키에 담고(세션 아이디) 쿠키를 HTTP 헤더(Set-Cookie)에 담아 보내준다

  3. 클라이언트는 쿠키값을 브라우저에 저장했다가 다음 요청때 HTTP 헤더에 넣어 다시 보낸다

  4. 서버는 쿠키를 읽어 이전 상태를 확인한다

    세션(Session)

    쿠키와 비슷하게 상태를 저장하는 기술인데 서버에 저장한다. 클라이언트가 서버에 접속을 하고있는동안 세션 정보를 서버가 저장하고 있는것이다.

    동작방식

    출처:https://doooyeon.github.io/2018/09/10/cookie-and-session.html

  5. 웹 브라우저가 서버에 요청을 보낸다

  6. 서버가 세션을 생성하고 세션을 세션 저장소에 저장한다. 보통 In-Mememory DB에 저장한다. 그리고 세션 아이디를 HTTP 헤더(Set-Cookie)에 넣어 보낸다

  7. 브라우저는 해당 브라우저를 닫기까지 쿠키에 세션 아이디를 넣어서 보낸다

  8. 서버는 세션 아이디를 확인하고 세션 정보를 사용한다

    쿠키와 세션의 차이점

    쿠키세션
    저장위치클라이언트서버
    보안클라이언트에 저장되어 보안에 취약함서버에서 따로 저장하고 세션 아이디만 공유하므로 보안성이 좋음
    라이프 사이클브라우저를 종료해도 만료시간 전이면 계속 남아있음만료시간 상관없이 브라우저가 종료되면 삭제됨
    속도클라이언트에 저장되어 세션보다 빠름세션 저장소에 접근해야하기때문에 쿠키보다는 느림

참고

doooyeon

profile
shining itself

0개의 댓글

관련 채용 정보