사이버보안공부
내가 만든 쿠키~~란 무엇일까?
wnstj
2023. 7. 14. 09:08
Cookies
서버는 클라이언트를 기억하지 못한다?
HTTP 프로토콜의 특징
Connectionless | 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것을 의미한다. |
Stateless | 통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미한다. |
다음과 같은 HTTP 프로토콜의 특징 때문에 서버는 클라이언트를 기억하지 못한다.
Cookie?
쿠키는 사용자가 방문한 웹사이트에서 사용자의 브라우저에 전송하는 작은 텍스트 조각이다.
Cookie의 용도?
일반적으로 쿠키는 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용한다.
정보기록?
웹 서비스 사용 시 종종 등장하는 팝업 창에 “다시 보지 않기”, “7일 간 표시하지 않기” 버튼이 있는 것을 확인할 수 있다.
웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 쿠키에 해당 정보를 기록하고, 쿠키로 팝업 창 표시 여부를 판단한다.
💡 쿠키는 서버와 통신할 때마다 전송된다. → 쿠키가 필요 없는 요청을 보낼 때 리소스 낭비가 발생!
—> 이러한 단점을 보완하기 위해 Modern Storage APIs를 통해 데이터를 저장하는 방식을 권장하고 있다.
상태 정보
많은 웹 사이트에서는 회원 가입과 로그인을 통해 개개인에게 맞춤형 서비스를 제공한다.
웹 서버에서는 수많은 클라이언트의 로그인 상태와 이용자를 구별해야 하는데,
이때 클라이언트를 식별할 수 있는 값을 쿠키에 저장해 사용한다.
쿠키가 없는 통신?
서버는 요청을 보낸 클라이언트가 누군지 알 수 없기 때문에 현재 어떤 클라이언트와 통신하는지 알 수 없다!!
쿠키가 있는 통신?
클라이언트는 서버에 요청을 보낼 때마다 쿠키를 포함하고,서버는 해당 쿠키를 통해 클라이언트를 식별한다!!