[JS 스터디] 쿠키와 세션 그리고

이 글은 제가 프리젠테이션을 위해 쓴 글입니다.

1. 쿠키

(1) 정의

쿠키는 클라이언트(브라우저)에 로컬로 저장되는 키와 값이 있는 작은 파일입니다.

  • 쿠키당 4KB를 저장합니다.
  • 웹사이트에 쿠키가 설정되면 이후의 모든 웹 요청은 쿠키 정보로 이루어집니다.
  • 인증에는 만료 날짜가 있으며 키 값으로 구성됩니다.
  • 쿠키를 잃는 것은 정보를 잃는 것과 같습니다.

두 번째 세션

(1) 정의

쿠키와 달리 사용자 정보는 서버에 저장되며 세션 ID 파일은 서버 측에서 생성 및 유지됩니다.

  • 세션 ID로 클라이언트 식별 니즈에 맞는 서비스 제공
  • 사용자가 많을수록 서버가 더 많은 메모리를 차지합니다.

+) 쿠키와 세션의 차이점

  • 정보가 저장되는 위치(세션 – 서버, 쿠키 – 클라이언트)
  • 세션은 쿠키보다 안전합니다.

3. 쿠키와 세션을 사용해야 하는 이유는 무엇입니까?

HTTP는 비연결성(connectionless)을 목표로 하는 무상태(stateless)입니다. 정보가 클라이언트에 전달되고 남겨지면 서버는 해당 정보를 기억하지 않습니다.

따라서 쿠키와 세션을 사용하여 상태를 저장합니다.

4. 브라우저 스토리지(WEB 스토리지)

(1) 정의

– HTML5에서 제공하는 기능으로 특정 데이터를 서버가 아닌 클라이언트 웹 브라우저에 저장하는 기능을 제공합니다.

– 데이터는 키 값의 형태로 저장될 수 있으며 키를 기반으로 데이터를 검색할 수 있습니다.

– 쿠키(만료일이 있는 키 값 저장)와 유사하게 작동합니다.

(2) 필요사유

– 쿠키/WEB 저장소는 모두 브라우저에 저장되지만 쿠키~이다 불리3가지를 정리할 수 있습니다.

  1. 데이터 저장이 제한됩니다. 쿠키를 저장하려면 4kb가 필요합니다.
  2. 보안에 취약합니다. HTTP 요청(클라이언트 요청 메시지 전달)에 대해 암호화되지 않은 상태로 사용되기 때문입니다.
  3. 성능에 영향을 미칩니다. 쿠키가 사라졌습니다. HTTP 요청에 포함되기 때문에 웹 서비스의 성능에 영향을 미칠 수 있습니다.

(3) 쿠키와 WEB 스토리지의 비교

쿠키 웹 스토리지
쿠키를 설정하면 쿠키 정보를 포함하여 모든 웹 요청이 매번 서버로 전송됩니다. 저장된 데이터는 클라이언트에 존재하며 서버로 전송되지 않습니다.
문자열 유형의 데이터만 저장할 수 있습니다. 구조화된 개체 정보 저장 가능(단, 브라우저 지원 필요)
용량은 4KB로 제한됩니다. 용량 제한은 없습니다.

(4) WEB 저장 방식

  1. 로컬 저장소: 브라우저를 닫고 열어도 데이터가 유지됩니다.
  2. 세션 저장 : 브라우저가 열려있는 동안은 새로고침 후에도 유지되며 닫으면 삭제됩니다.