쿠키 (Cookie)
✍️ 클라이언트 (사용자의 웹브라우저)에 저장되는 작은 데이터 조각
- 쿠키는 서버가 클라이언트에게 정보를 저장하도록 허용하며, 이후 요청 시 이 정보를 서버에 전송할 수 있음
- 상태를 유지하지 않는 HTTP의 특성을 보완하기 위한 수단
- 쿠키는 <이름, 값> 쌍의 형태를 띰, 추가로 적용 범위, 만료 기간 등
- 쿠키를 사용하면 웹 애플리케이션이 제한된 양의 데이터를 저장하고 상태 정보를 기억할 수 있다.
- 기본적으로 HTTP 프로토콜은 무상태
전달 방식
- 서버는 쿠키를 생성하여 클라이언트에게 전송
- 클라이언트는 전달 받은 쿠키를 저장
- 추후 동일한 서버에 보내는 요청 메시지에 쿠키를 포함하여 전송
사용 과정
1. 사용자는 양식 제출을 통해 서버에 로그인 자격 증명을 보낸다.
2. 자격 증명이 올바르면 서버는 UI를 업데이트하여 사용자가 로그인되었음을 나타내고 브라우저에서의 로그인 상태를 기록하는 세션 ID가 포함된 쿠키로 응답한다.
3. 나중에 사용자는 같은 사이트의 다른 페이지로 이동하면 브라우저는 세션 ID가 포함된 쿠키를 해당 요청과 함께 보내 사용자가 여전히 로그인되어 있다고 것을 나타낸다.
4. 서버는 세션 ID를 확인하고, 여전히 유효한 경우 사용자에게 새 페이지의 개인화된 버전을 보낸다. 유효하지 않은 경우 세션 ID가 삭제되고 사용자에게 일반 버전의 페이지가 표시된다.
특징
- 클라이언트 저장
- 쿠키는 클라이언트의 브라우저에 저장된다.
- 제한된 용량
- 각 쿠키의 크기는 일반적으로 4KB로 제한되어 있다.
- 만료 기간
- 만료 기간을 설정할 수 있으며, 이를 기반으로 자동으로 삭제된다.
- 용도
- 사용자의 로그인 정보, 웹사이트의 사용자 환경 설정 등을 저장하는 데 사용된다.
- HTTP 요청 시 전송
- 쿠키는 HTTP 요청과 함께 서버로 전송된다.
세션 (Session)
✍️ 서버 측에서 관리되는 데이터 저장소로, 사용자가 웹 애플리케이션에 접속할 때 생성된다.
- 세션은 각 사용자와 관련된 데이터를 서버에 안전하게 저장한다.
- 세션 변수로 여러 페이지에서 사용할 사용자 정보를 저장하여 웹 서버가 사용자가 누구인지 또는 무엇을 하는지 알려준다.
- 세션 변수는 한 명의 사용자에 대한 정보를 보관하며, 한 애플리케이션의 모든 페이지에서 사용할 수 있다.
특징
- 서버 저장
- 세션 정보는 서버 측에 저장된다.
- 세션 ID
- 클라이언트와 서버 간의 연결을 식별하기 위해 세션 ID가 생성된다.
- 데이터 용량
- 세션은 상대적으로 많은 양의 데이터를 저장할 수 있다.
- 만료 기간
- 세션은 일반적으로 사용자가 로그아웃하거나 일정 시간 동안 비활성 상태일 때 종료된다.
- 보안
- 세션 데이터는 서버에 저장되므로 클라이언트에서 쉽게 접근할 수 없다.
정리 📌
차이점
특징 | 쿠키 | 세션 |
저장 위치 | 클라이언트(브라우저) | 서버 |
데이터 크기 | 제한됨 (4KB 이하) | 대부분 큰 데이터 저장 가능 |
만료 | 만료 기간 설정 가능 | 비활성 시 종료 |
보안 | 상대적으로 낮음 (클라이언트에 저장) | 상대적으로 높음 (서버에 저장) |
사용 용도 | 상태 유지, 사용자 설정 저장 | 사용자 인증, 데이터 저장 |
쿠키
✅ 웹사이트가 사용자의 브라우저에 저장하는 작은 정보 조각 → ex. 로그인 정보 기억
세션
✅ 웹사이트 방문 중 사용자의 정보를 서버에서 안전하게 저장하는 방법 → ex. 로그인 사용자 정보를 유지
<참고 사이트>
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
Using HTTP cookies - HTTP | MDN
A cookie (also known as a web cookie or browser cookie) is a small piece of data a server sends to a user's web browser. The browser may store cookies, create new cookies, modify existing ones, and send them back to the same server with later requests. Coo
developer.mozilla.org
https://www.w3schools.com/php/php_sessions.asp
W3Schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
'CS 기술 면접 준비' 카테고리의 다른 글
유효성 체크(검사)란? (1) | 2025.01.22 |
---|---|
인증 (Authentication) VS 인가 (Authorization) / 특징, 차이점 (0) | 2025.01.21 |
Singleton Pattern (2) | 2025.01.21 |
의존성 주입의 방법 (0) | 2025.01.20 |
DTO (Data Transfer Object) (3) | 2025.01.20 |