클라이언트가 어떠한 웹사이트를 방문할 경우, 웹서버가 웹 브라우저에게 보내어 저장한 후, 서버의 부가적인 요청이 있을 때 다시 서버로 보내주는 작은 기록 정보 파일(Key-Value 형식의 문자열)이다.
웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 사용자의 브라우저에 저장하여 사용자의 고유 정보 식별이 가능하다. 이를 통해 사용자가 웹 사이트의 모드(라이트 모드, 다크 모드), 언어, 로그인 했을때 다음에 사이트에 재방문 시에도 설정이 그대로 유지될 수 있다.또한 쿠키에 담겨있는 사용자의 설정과 과거 이용내역을 통해 사용자의 행동과 패턴을 분석하여 트래킹 할 수 있다.
일반적으로 쿠키는 만료일이 있다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키(세션 쿠키)도 있으며, 일부는 수동으로 삭제되기 전까지 남아있는 등 더 오랜기간 동안 컴퓨터에 저장되는 쿠키(지속적 쿠키)도 있다.
클라이언트는 최대 300까지 쿠키를 가질 수 있으며, 하나의 사이트 당 최대 20개, 하나의 쿠키 당 최대 4KB까지 저장할 수 있다.
HTTP 프로토콜은 비연결성과 무상태의 특징이 있다. 비연결성이란 클라이언트가 서버에 요청을 하면 서버는 응답하게 된다. 이렇게 한번의 요청과 응답으로 서버는 클라이언트에 모든 정보를 담아 보내고 서로의 접속을 끊게 된다는 특징이다. 무상태란 접속을 끊는 순간 서버와 클라이언트의 통신이 끊기고 상태정보를 유지하지 않는다는 특징이다.
이러한 HTTP의 특징은 리소스를 줄일 수 있다는 장점이 있지만 사용자의 정보를 저장할 수 없기 때문에 웹사이트는 사용자를 구별할 수 없고 사용자는 매번 번거로운 인증 절차를 진행해야 했다. 그에 비해 쿠키는 간단한 사용자의 정보를 기억할 수 있는 수단으로, HTTP의 단점을 보완할 수 있게 되었다.
쿠키 구성 요소는 개발자 도구를 통해 쿠키를 확인 할 수 있다. 사진을 보면 쿠키를 구성하고 있는 요소들을 확인 할 수 있다. 각 항목의 뜻하는 것은 다음과 같다.
참고
https://inpa.tistory.com/entry/WEB-📚-JWTjson-web-token-란-💯-정리
https://kobrekim.com/footer-ko-kr/cookie-policy-ko-kr/what-are-cookies-and-why-we-use-them-ko-kr/
https://medium.com/@ddinggu/cookie란-a650c6d2803e
https://velog.io/@qodlstjd12/쿠키란-무엇인가
https://fomaios.tistory.com/entry/Network-쿠키Cookie란-What-is-a-Cookie
https://lovefor-you.tistory.com/247