ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 세션, 토큰, 쿠키
    기타 2021. 12. 16. 23:50
    반응형

    세션

    - 서버에 로그인 되어있음이 지속되는 상태를 '세션' 이라고 한다.

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

     

    세션의 동작 순서

    1. 클라이언트가 페이지를 요청
    2. 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여,
      클라이언트가 해당 session-id를 보냈는지 확인한다.
    3. session-id가 존재하지 않는다면,
      서버는 session-id를 생성해 클라이언트에게 돌려준다.
    4. 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장한다.
      쿠키 이름 : SESSIONID
    5. 클라이언트는 재접속 시,
      이 쿠키(SESSIONID)를 이용하여 session-id 값을 서버에 전달

     

     

    세션과 토큰은 왜 필요한가?

    - HTTP(웹사이트를 이용할때 쓰는 프로토콜)은 stateless이다.

    - stateless는 서버로 가는 모든 요청이 이전 요청과 독립적으로 다루어 진다는 뜻. 요청이 끝나면 서버는 내가 누군지 잊어버린다.

    - 요청이 끝나면 서버는 우리가 누군지 잊어버린다.

    - 이를 해결하는 방법이 세션

     

    - 세션은 서버 확장시 세션의 정보의 동기화 문제가 발생한다.

    - 세션은 메모리에 저장되기 때문에 에러가 발생할 경우 휘발될 가능성

    - 이러한 문제를 해결하는 방법이 토큰

     

    토큰(JWT - Json Web Token)

    - 사용자가 로그인을 하면 서버에서 상태를 저장하지 않고, 토큰 바디에 정보를 저장해 클라이언트가 가진 뒤, 이를 증명서 처럼 사용하는 것

    - 세션의 한계와 문제점 때문에 토큰이 등장

    - 토큰은 서버의 상태를 저장하지 않음 (Stateless)

    - 토큰 자체로 정보를 가지고 있어서 별도의 인증 서버가 필요없다.

    - 토큰은 헤더, 페이로드, 시그니처로 3부분으로 구성

     

     

     

     

    쿠키

    - 서버는 쿠키를 활용하여 나에 관한 정보(웹사이트의 언어 설정)를 브라우저에 데이터를 넣을 수 있다.

    - 이후 해당 웹사이트에 방문할 때마다 브라우저는 해당 쿠키도 서버에게 보내준다. 

    - 쿠키는 유효기간이 존재한다. 서버가 정한 기간에 따라 유효하다.

     

    순서

    1. 서버에서 나의 브라우저로 쿠키를 전송

    2. 브라우저는 정보를 쿠키에 담아 저장

    3. 추후 다음에 해당 웹사이트 방문 시 쿠키는 요청과 함께 서버로 보내지고, 서버는 쿠키가 기억해둔 언어 설정의 페이지를 제공

    300x250

    댓글

Designed by Tistory.