1. 쿠키와 세션
- 쿠키(Cookie)는 클라이언트의 브라우저에 데이터를 저장하여 서버가 클라이언트를 식별할 수 있도록 한다.
- 키-값 쌍으로 데이터를 저장하며, HTTP 요청/응답 시 자동으로 전송되도록 한다.
- 유효 기간(expiry)을 설정하여 쿠키를 자동으로 삭제되도록 한다.
- 로그인 유지, 사용자 환경 맞춤화 등에서 사용되도록 한다.
- 세션(Session)은 서버에 클라이언트 상태 정보를 저장하여 보안을 강화하도록 한다.
- 클라이언트는 세션 ID를 통해 서버에 접근하며, 이 ID는 주로 쿠키로 전달되도록 한다.
- 브라우저를 종료하거나 세션이 만료되면 데이터를 삭제되도록 한다.
- 사용자 인증 및 개인화된 데이터를 제공하도록 한다.
2. 쿠키와 세션의 발전 과정
- 초기에는 클라이언트에 데이터를 저장하는 쿠키를 사용하여 서버와 클라이언트 상태를 관리하도록 한다.
- 보안 및 관리의 문제를 해결하기 위해 데이터를 서버에 저장하는 세션을 도입하도록 한다.
- 이후, 보안 및 데이터 관리의 효율성을 강화하기 위해 다음과 같은 발전 과정을 거치도록 한다.
- Secure Cookie는 HTTPS에서만 쿠키를 전송하도록 한다.
- HttpOnly Cookie는 자바스크립트에서 쿠키 접근을 차단하여 보안을 강화하도록 한다.
- 세션 스토리지와 로컬 스토리지는 브라우저에서 데이터를 저장하는 방식으로 발전하도록 한다.
3. JWT (JSON Web Token)
- JWT는 클라이언트-서버 간 인증을 위해 사용되는 토큰 기반의 인증 방식이다.
- Header, Payload, Signature 세 부분으로 구성된 문자열로 이루어진다.
- 클라이언트가 서버로부터 JWT를 발급받아 이후 요청에 포함하여 인증을 수행하도록 한다.
- 서버는 JWT의 서명을 검증하여 요청의 유효성을 확인하도록 한다.
- 주로 API 인증에서 많이 사용되며, 세션 없이 상태를 유지할 수 있도록 한다.
4. 브라우저 저장소
- 브라우저 저장소는 클라이언트 측에서 데이터를 저장할 수 있는 기술이다.
- 쿠키(Cookie): 클라이언트-서버 간 데이터를 전송하고 상태를 유지하도록 한다.
- 세션 스토리지: 브라우저 탭 단위로 데이터를 저장하며, 탭이 닫히면 데이터를 삭제되도록 한다.
- 로컬 스토리지: 브라우저에 데이터를 영구적으로 저장하며, 명시적으로 삭제할 때까지 유지되도록 한다.
- IndexedDB: 대량의 데이터를 클라이언트 측에서 저장하고 관리할 수 있도록 한다.\
🔥 다음과 같은 내용을 도전해봅시다.
1. 네이버에서 쿠키 값 확인해보기
2. 위에서 얻은 쿠키를 변조한 후 결과 분석하기
쿠키를 삭제하니 로그아웃이 된 모습을 볼 수 있었다.
'Education > KnockOn Bootcamp 3rd' 카테고리의 다른 글
[1주차 TIL] KnockOn Bootcamp 프록시 (0) | 2024.12.07 |
---|---|
[1주차 TIL] KnockOn Bootcamp 패킷 (1) | 2024.12.07 |
[1주차 TIL] KnockOn Bootcamp HTTP/HTTPS (1) | 2024.12.06 |
[1주차 TIL] KnockOn Bootcamp 프로토콜 (0) | 2024.12.04 |
[1주차 TIL] KnockOn Bootcamp 웹이란? (0) | 2024.12.04 |