[Web]쿠키(Cookie)와 세션(Session)

meek·2023년 6월 11일
0

TIL

목록 보기
6/24
post-thumbnail

패스트캠퍼스의 'Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기' 강의를 듣고 정리한 내용입니다.

쿠키와 세션은 웹 브라우저와 웹 서버가 통신하는 과정에서 많이 사용된다는 특징이 있다.

쿠키

  • 사용자가 특정한 웹 사이트에 방문할 때, 사용자 컴퓨터에 저장하는 기록 파일
  • 서버의 자원을 전혀 사용하지 않는다.
  • "아이디와 비밀번호를 저장하시겠습니까?"라는 메시지를 확인하고 예/아니오 버튼을 누르게 되면 내 컴퓨터 안에 아이디와 비밀번호가 저장되는데 이것이 쿠키의 대표적인 예시이다.
  • 크롬에서 구글아이디를 다른 사이트에서 사용할 수 있도록 자동 저장하는 경우도 쿠키를 사용하는 것에 해당된다.

세션

  • 한 명의 사용자(브라우저)의 상태를 유지하는 기술

  • 서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청한다.

  • 웹 사이트에 한 번 로그인하면, 다른 페이지로 이동해도 계속 접속 상태가 유지되는 것이 세션의 대표적인 예시

  • 만약 Session ID를 다른 클라이언트에게 탈취당하면, 다른 사람이 자신의 행세를 할 수 있다.

  • 회원 정보 수정같은 페이지에 접속할 때는 별도의 ID나 PW를 확인해서 별도의 토큰을 발급하는 과정을 수행하기도 한다.

  • 서버에서 가지고 있는 객체로, 특정 사용자의 로그인 정보를 유지하기 위해 사용할 수 있다.

  • 예를 들어 우리가 웹 사이트에 로그인한 뒤에, 서버에서는 세션 ID에 따른 회원 ID 정보를 기억한다.

  • 클라이언트는 해당 세션을 계속 유지한다. 검색창이나 메일함에 접속할 때 세션 ID를 서버에 전송한다.
    👉🏻 세션을 자신이 누구인지를 서버에 알려주는 역할
    👉🏻 서버에서 가지고 있는 객체로, 특정 사용자의 로그인 정보를 유지하기 위해 사용할 수 있다.

세션 인증 방식 예시

  1. (클라이언트)로그인 페이지 요청
  2. (서버)로그인 페이지 응답
  3. (클라이언트)로그인 요청(ID, Password)
  4. (서버)세션 생성 및 유지
  5. (서버)세션 ID(Session) 응답
  6. (클라이언트) 브라우저에 세션 정보 저장
  7. (클라이언트)세션 ID와 함께 요청(글쓰기 등)수행
  8. (서버)세션 ID를 통해 회원 ID 접근
  9. (서버)해당하는 회원에 대하여 서비스(글쓰기 처리)수행

세션 방식의 특징

장점

  • 클라이언트에게는 세션 ID(회원 식별 목적)을 제공하고, 회원에 대한 중요한 정보를 서버가 가지고 있다.
  • 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다.
  • 클라이언트 브라우저가 가지고 있는 세션 ID 자체에는 개인정보를 포함하고 있지 않다.

단점

  • 악의적인 공격자가 세션 ID를 탈취하여 사용자인 척 위장할 수 있다.
  • 웹 서버에 세션 정보를 기록하고 있어야 하므로, 접속자가 많을 때 서버에 메모리 부하가 존재할 수 있다.
profile
hello, world!

0개의 댓글