티스토리 뷰

쿠키(Cookie)란?

  • 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 사용하는 방법입니다.
  • 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다.
  • 웹 서버가 웹 브라우저에게 보내는 데이터중 하나입니다.
  • 300개까지 쿠키 저장이 가능하고 하나의 도메인 당 20개의 값만 가질 수 있으며 하나의 쿠키 값은 4KB까지 저장가능합니다.
  • 클라이언트 PC의 쿠키 파일에 데이터를 저장하여 웹 페이지들끼리 공유합니다.
  • 사용자가 따로 설정하지 않아도 브라우저가 request header에 쿠키를 자동으로 넣어 서버에 전송합니다.
  • 클라이언트의 PC에 데이터를 저장하므로  보안에 취약하여, 보안과 무관한경우에 사용합니다.
  • 쿠키는 userId=user-1321;userName=sparta 와 같이 문자열 형식으로 존재하며 쿠키 간에는 세미콜론(;) 으로 구분됩니다.

EX) 웹 홈페이지 접속 시 나타나는 팝업창에 대해 ‘오늘 더이상 보지않기’ 에 체크하여 사용할 때 쿠키 이용

출처 : https://velog.io/@guswlsapdlf

쿠키 동작 방식

  1. 브라우저로 사이트에 접속합니다.(클라이언트가 페이지를 요청)
  2. 서버가 http headerd에 데이터를 저장한 쿠키를 생성하여 브라우저로 응답합니다. 
  3. 브라우저는 서버에서 받은 쿠키를 쿠키 파일로 저장합니다.
    • 여기서 브라우저가 종료 되어도 쿠키의 유효시간이 남아있다면 클라이언트에서 보관하고 있습니다.
  4. 브라우저로 동일 사이트에 재접속하여 동일한 request가 갈 경우 이미 존재하고 있는 쿠키를 http header로 함께 보냅니다. 
  5. 서버에서 쿠키를 읽어 이전 상태 정보를 변경 할 필요가 있을 때 는 쿠키를 업데이트 하여 변경된 쿠키를 http header에 포함시켜 응답합니다.

쿠키의 종류

Persistence 쿠키

  • 클라이언트에 파일로 정보저장하여 브라우저를 닫거나 컴퓨터를 재시작하더라도 남아있음.
  • 사용자가 만료 시간 지정가능(쿠키를 삭제하거나 유효기간이 만료되면 쿠키 설정값이 종료)
  • 최초 접속시 서버로 전송
  • 로그인 유무(이미 로그인을 한 유저에게 재로그인 요구x) 또는 팝업창을 제한할 때, 장바구니에 사용.

 

session 쿠키

  • non-persistent cookies 또는 temporary cookies 라고 불림.
  • 사이트 탐색 시에 관련한 설정들과 선호사항을 저장하는 임시 쿠키
  • 세션(Session)과 같이 사용
  • 브라우저가 사용하는 메모리에 생성되며 디스크에는 절대 저장되지 않음
  • 브라우저 종료시 자동 소멸
  • 최초 접속시 서버로 전송x
  • 사이트 접속 시 Session인증 정보를 유지할때(온라인뱅킹 - 사이트나갔다 들어오면 재 로그인)

 


세션(Session)이란?

  • 보안에 취약한 쿠키를 보완해주는 역할을 합니다.
  • 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미합니다.
  • 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 합니다.
  • 서버가 돌아가는 서버측에 데이터를 저장하고, 세션의 키값만을 클라이언트 측에 남겨둡니다. 브라우저는 이 키값을 이용하여 서버에 저장된 데이터를 사용합니다.
  • 세션기능은 은행이나 공공기관에서 정해진 시간내에 업무를 봐야하는 시간처럼 유효시간이 있는 용도로 쓰일수 있습니다.

출처: https://www.wisecleaner.com/think-tank

세션 동작 방식

  1. 브라우저로 사이트에 접속합니다.(클라이언트가 페이지를 요청)
  2. 서버는 접속한 브라우저에 대한 세션 객체를 생성합니다.
  3. 생성된 세션 ID를 클라이언트 브라우저에 응답합니다.
  4. 브라우저는 서버로부터 받은 세션 ID를 브라우저가 사용하는 메모리의 세션쿠키에 저장합니다.
  5. 브라우저가 동일사이트에 재 접속하면 브라우저는 세션쿠키에 저장된 세션 ID를 서버에 전달합니다.
  6. 서버는 전송된 세션ID를 이용해 해당 세션에 접근하여 작업을 수행합니다.

 

쿠키와 세션의 차이

구분 쿠키 세션
저장위치 클라이언트(로컬) 서버
만료시점 쿠키 저장시 설정
(브라우저를 종료해도 만료시점이 지나지 않으면 자동 삭제 되지 않습니다)
브라우저 종료시 삭제
(기간 별도 지정 가능)
보안 취약, 로컬에 저장되어 탈취, 변조 위험 존재한다. 서버에 저장되므로 안전하다.
속도 빠르다. 제공받은 세션아이디를 이용해서 서버에서
다시 데이터를 참조해야 하므로 쿠키보다 비교적 느리다.

 

'프로그래밍 기초 > CS' 카테고리의 다른 글

Access Token 과 Refresh Token  (0) 2024.02.16
JWT란?  (0) 2024.02.14
JWT 사용자 인증 미들웨어  (0) 2024.01.27
REST API란?  (0) 2024.01.23
웹서버란?  (0) 2024.01.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함