랄라

Cookie와 Session 본문

내일배움캠프/공부정리

Cookie와 Session

devdaeun 2025. 2. 4. 14:34

쿠키 (Cookie)

웹 서버가 클라이언트(사용자의 웹 브라우저)에 저장하는 작은 데이터 파일

클라이언트의 정보를 저장하거나, 세션 상태를 유지하는 데 사용

 

*쿠키의 특징

더보기
  • 정보가 클라이언트 pc에 저장되기때문에 보안에 취약하다
  • 저장정보, 용량이 제한되어있다.(4kb)
  • 클라이언트 브라우저에서 사용유무를 설정할 수 있다
  • 도메인당 쿠키가 만들어진다

 

쿠키의 종류

*보통 쿠키 = persistance쿠키

  Persistance 쿠키 Session 쿠키
생성위치 파일로 생성 브라우저 메모리에 생성
종료시기 쿠키삭제, 설정한 만료시간이후 브라우저를 종료하면 쿠키도 종료됨
전송여부 최초 접속 시 서버로 전송 최초 접속시 서버로 전송안됨
용도 로그인 유무,팝업창 제한 사이트 접속시 session정보유지
 보안 취약 (클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있음) 비교적 안전 (서버에 저장되기 때문에 상대적으로 안전)
import javax.servlet.http.Cookie;

Cookie ck = new Cookie(쿠키이름, 쿠키내용); //쿠키내용은 특수문자로 보여진다.

 

최초 사이트 접속 시

  1. 클라이언트가 브라우저로 사이트(서버)에 접속
  2. 서버는 정보를 저장한 쿠키를 생성
  3. 생성된 쿠키를 브라우저로 전송
  4. 브라우저는 서버로부터 받은 쿠키정보를 쿠키파일에 저장

재접속시

  1. 브라우저가 다시 접속해 서버가 브라우저에게 쿠키전송을 요청하면
  2. 브라우저는 서버에게 쿠키정보를 전달합니다
  3. 서버는 쿠키정보를 이용해 작업을 합니다.

Session(세션)

서버에서 클라이언트의 상태를 유지하기위해 사용.

세션 ID를 발급하고, 이를 통해 사용자를 식별하여 상태를 관리.

  1. 브라우저로 사이트에 접속
  2. 서버는 접속한 브라우저에 대한 세션객체를 생성
  3. 서버는 생성된 세션 id를 클라이언트 브라우저로 응답
  4. 브라우저가 서버로 받은 세션id를 브라우저가 사용하는 메모리의 세션쿠키를 저장하는데에사용

재접속시

  1. 브라우저가 재접속하면 브라우저는 세션쿠키에 저장된 세션id를 서버에 전달
  2. 서버는 전송된 세션 id를 이용해 해당 세션에 접근하여 작업을 수행

'내일배움캠프 > 공부정리' 카테고리의 다른 글

Spring Security와 주요기능  (0) 2025.02.05
JWT(Json Web Token)  (0) 2025.02.04
SpringBoot JPA, Spring Data JPA  (0) 2025.02.04
Entity 와 Persistence Context (영속성 컨텍스트)  (1) 2025.02.04
JDBC (+JdbcTemplate)  (0) 2025.02.04