새소식

CS

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

  • -

오늘은 HTTP의 특징 중 하나인 무상태 프로토콜의 한계를 해결하기 위한 방법인 쿠키와 세션에 대해서 알아보겠습니다

 

HTTP의 특징을 아직 모르신다면 아래의 글을 참고해주세요⬇️

 

[CS] HTTP란?

HTTP(HyperText Transfer Protocol)💡웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위해 사용하는 프로토콜 HTTP의 특징크게 클라이언트 서버 구조,Connectionless와 Stateless로 볼 수 있습니다클라이언트

dinmoy8761.tistory.com

 

 

쿠키와 세션 많이 들어보기는 했을텐데 어디에 어떤 상황에서 쓰이는 것 일까요?

쿠키(Cookie)란

💡브라우저에 로컬로 저장되는 Key-Value쌍의 작은 데이터 파일

어떤 웹 사이트에 방문했을 때 브라우저를 통해 사용자의 컴퓨터에 보관하는 기록물입니다

 

쿠키 구성요소

쿠키 이름, 쿠키값,만료시간 전송할 도메인명 전송할 경로 보안연결 여부 httpOnly여부

 

동작 방식

 

  1. 클라이언트가 서버에 로그인 요청
  2. 서버는 클라이언트 로그인 요청의 유효성을 확인(아이디와 비밀번호검사) 하고 응답헤더에 쿠키를 추가하여 응답
  3. 클라이언트는 이후 서버 요청 할 때 받은 쿠키를 자동으로 요청헤더에 추가하여 요청
  • 쿠키는 사용자가 웹 사이트에 접속할 떄마다 서버에 전송되어서 서버의 기억을 되살리는 역할을 합니다
  • 쿠키의 기한은 정해져있지 않고 명시적으로 지우지 않으면 반 영구적으로 남아있습니다

 

쿠키에도 규칙이 있는데요

쿠키 규칙

  1. 쿠키는 도메인 1개에만 한정한다
    예를 들자면 인스타그램에서 생성된 쿠키는 넷플릭스에 보낼 수 없습니다

  2. 쿠키는 자동으로 보낸다
    쿠키는 사용자가 원하든 원하지 않든 사용자의 컴퓨터와 서버를 왔다갔다 할 수 있습니다

  3. 쿠키는 컴퓨터에 자동으로 저장된다
    쿠키는 사용자가 어떤 웹사이트에 접속하면 그 순간 쏟아져 들어와서 볼 수 있습니다

세션(session)

💡서버측에서 관리되는 브라우저가 종료되기 전까지 클라이언트의 요청을 유지해주는 기술

즉 방문자가 휍서버에 접속해 있는 상태를 하나의 단위로 보고 세션으로 처리합니다

 

동작 방식

  1. 클라이언트가 서버에 로그인 요청
  2. 서버는 클라이언트의 로그인 요청 유효성을 확인하고 unique한 id를 seesionid라는 이름으로 저장
  3. 서버가 응답할 떄 응답헤더에 쿠키를 추가하여 응답
  4. 클라이언트는 이후 서버에 요청할 때 전달받은 쿠키를 자동으로 요청헤더에 추가하여 요청
  5. 서버에서는 요청헤더의 seesionid값을 저장된 세션 저장소에서 찾아보고 유효한지 확인 후 요청을 처리하고 응답
  • 세션의 내용은 서버에 저장되어 게속 늘어나면 서버에 부하가 발생가 발생할 수 있습니다

이렇게 쿠키와 세션에 대해 알아보았지만 아직도 헷갈리다면

한 눈에 이해하기 쉽게 표로 정리해봅시다

총 정리 하자면

구분 쿠키 세션
저장위치 로컬 서버
보안 약함 쿠키에 비해 상대적으로 안전
lifecycle 브라우저 종료시에도 파일로 남음 브라우저 종료시 세션 삭제
속도 빠름
(파일에서 읽기때문)
비교적 느린편
(요청마다 서버에서 처리를 해야하기 떄

 

  • 지워지거나 조작되거나 가로채이더라도 큰일은 없을 정보들은 쿠키로 브라우저에
    사용자나 다른 누군가에게 노출되어서는 안되는서비스 제공자가 직접 관리해야하는 정보들 세션으로 서버 안에서 저장됩니다

'CS' 카테고리의 다른 글

[CS] About HTTP 메서드  (3) 2024.03.18
[CS] Axios 란 무엇일까?  (0) 2024.02.20
[CS] CORS란 무엇일까? CORS 개념  (0) 2024.02.06
[CS] Socket 이란?  (0) 2024.01.30
[CS] HTTP 상태코드 알아보기  (0) 2024.01.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.