쿠키와 세션은 사용자의 정보를 일정 시간 동안 저장하여 웹 브러우저와 웹 서버 사이에서 사용자를 식별하기 위해 사용되는 기술이다.
쿠키(Cookie)
쿠키는 클라이언트 측에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
사용자가 특정 웹 사이트를 방문할 때 웹 서버는 HTTP 응답헤더를 사용하여 클라이언트에 쿠키를 전송한다. 웹 브라우저는 이 쿠키를 저장하고, 이후 해당 서버에 요청을 보낼 때마다 쿠키를 HTTP 요청 헤더에 추가하여 전송한다.
이를 통해 서버는 사용자를 식별하고 사용자의 정보를 기억할 수 있다.
주로 사용자 로그인 상태를 유지하거나, 쇼핑 사이트의 장바구니 같은 상태 정보를 저장하는데 사용된다. 또한, 사용자의 행동 패턴이나 선호하는 설정 등을 통해 개인화된 사용자 경험을 제공하는데도 활용된다.
세션(Session)
세션은 서버 측에서 관리하는 사용자 정보이다.
쿠키를 이용하여 클라이언트의 요청을 구분하고, 그 요청에 해당하는 사용자의 정보를 서버에 저장한다. 세션 ID를 이용해 사용자를 구분하며, 이 세션 ID는 사용자가 로그인하거나 웹사이트를 방문할 때 생성된다.
세션은 쿠키에 비해 상대적으로 보안성이 높으나, 많은 사용자가 접속할 경우 서버 메모리를 많이 차지할 수 있다는 단점이 있다.
쿠키과 세션은 각각 장단점을 가지고 있으므로, 웹사이트의 성격이나 요구사항에 따라 적절히 사용해야 한다. 이 두 기술은 세션 ID를 쿠키를 통해 클라이언트에 저장하고 이를 통해 서버가 사용자를 인식하게 하는 경우와 같이 종종 함께 사용되기도 한다.
쿠키 & 세션
저장 위치
- 쿠키 : 클라이언트의 웹 브라우저가 지정하는 메모리 or 하드디스크
- 세션 : 서버의 메모리
만료 시점
- 쿠키 : 저장할 때 expires 속성을 정의해 무효화시키면 삭제될 날짜를 정할 수 있다.
- 세션 : 클라이언트가 로그아웃하거나, 설정 시간동안 반응이 없으면 무효화 되기 때문에 정확한 시점을 알 수 없다.
리소스
- 쿠키 : 클라이언트에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버 자원을 사용하지 않는다.
- 세션 : 세션은 서버에 저장되고, 서버 메모리로 로딩 되기 때문에 세션이 생길 때마다 리소스를 차지한다.
용량 제한
- 쿠키 : 클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있기 때문에 쿠키로 인해 문제가 발생하는 것을 막기위해 한 도메인당 20개, 하나의 쿠키 당 4KB로 제한 되어 있다.
- 세션 : 클라이언트가 접속하면 서버에 의해 생성되므로 개수나 용량 제한이 없다.
[참고] https://gyoogle.dev/blog/web-knowledge/Cookie%20&%20Session.html
'Computer Science > Web' 카테고리의 다른 글
[Web] OAuth (0) | 2023.08.10 |
---|---|
[Web] Web Server와 WAS의 차이 (0) | 2023.08.10 |
[Web] REST API (0) | 2023.08.10 |
[Web] HTTP Request Methods & Status Code (0) | 2023.08.01 |
[Web] 브라우저 동작 방법 (0) | 2023.07.24 |