[CS] Cookie VS Session

수민🐣·2022년 12월 12일
0

CS

목록 보기
7/12

세션과 쿠기를 사용하는 이유

HTTP는 항상 연결되어 있는 것이 아닌 필요할 때 마다 요청을 보내고 응답을 받으면 서버가 접속을 끊는다는 특징을 가지고 있는데 그러면 상태 정보가 유지되지 않기 때문에 로그인 정보를 유지하기 위한 방법이 쿠키와 세션이다.

어떠한 웹 사이트를 방문할 경우 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일

필요서 정보를 참조하거나 재사용이 가능
단점으로는 클라이언트단에 저장이 되어 보안에 약하다

특징

  1. 이름, 값, 만료일, 경로 정보로 구성
  2. 클라이언트에 총 300개의 쿠기를 저장 가능
  3. 하나의 도메인 당 20개의 쿠기를 가질 수 있음
  4. 하나의 쿠키는 4kb까지 저장 가능

동작 순서

  1. 클라이언트가 페이지를 요청 -> 서버는 쿠기를 생성
  2. 생성한 쿠깅 정보를 담아 HTTP 화면을 돌려 줄 때, 클라이언트에게 같이 돌려준다.
  3. 넘겨받은 쿠기는 클라이언트가 가지고 있다가 다시 서버에 요청할때 함께 쿠기를 전송
  4. 동일 사이트 재방문 시 클리이언트의 pc에 해당 쿠기가 있는 경우, 요청 페이지와 함께 쿠기를 전송

Session

웹 서버에 연결된 순간부터 웹 브라우저가 닫아 서버와의 HTTP 통신을 끝낼 때까지의 기간

보통은 서버에 세션에 대한 정보를 저장해 놓고 세션 쿠키를 클라이언트에 줘서 서버가 클라이언트를 식별할 수있도록 하는 방식

특징

  1. 서버에 세션 객체를 생성하며 각 클라이언트마다 고유한 세션 ID값을 부여
  2. 쿠키를 사용하여 세션 ID값을 클라이언트에 보냄
  3. 웹 브라우저가 종료되면 세션 쿠키는 삭제
  4. 따로 용량의 제한이 없음

동작 순서

  1. 클라이언트가 페이지를 요청
  2. 서버가 클라이언트마다 세션 ID를 부여
  3. 클라이언트는 요청할 때마다 세션 ID를 서버에 전달
  4. 서버는 받은 세션 ID로 클라이언트 정보를 가져와 활용

Cookie와 Session 차이

  1. 저장 위치
    Cookie : 클라이언트(파일)
    Session : 서버

  2. 보안
    Cookie : 클라이언트의 브라우저에 저장하기에 보안에 취약
    Session : 서버에서 처리하기에 비교적으로 안전

  3. 라이프 사이클
    Cookie : 만료시간이 있지만 브라우저 종료해도 계속해서 정보가 남아있기에 쿠키 삭제할 때까지 유지 가능
    Session : 만료시간을 정할 수 있지만 브라우저가 종료되면 그에 상관없이 삭제

  4. 속도
    Cookie : 쿠키에 정보가 있기 때문에 서버에 요청시 속도가 빠름
    Session : 정보가 서버에 있기 때문에 처리가 요구되어 비교적으로 느림

➕ LocalStorage 와 SessionStorage의 차이점

데이터 유지 측면

  • LocalStorage
    저장한 데이터를 명시적으로 지우지 않는 이상 영구적으로 보관이 가능

  • SessionStorage
    브라우저가 종료되면 데이터도 같이 지워짐

0개의 댓글