HTTP 프로토콜은 기본적으로 클라이언트와 서버 간의 각 요청이 독립적으로 처리되며 이전 요청과의 상태를 유지하지 않습니다. 이로 인해 사용자의 로그인 상태나 다른 데이터를 계속해서 전송해야 하는 번거로움이 발생할 수 있습니다. 쿠키와 세션은 이런 상황에서 발생하는 문제를 해결하기 위해 사용됩니다.
쿠키는 클라이언트(사용자의 브라우저)에 저장되는 작은 데이터 조각입니다.
서버는 클라이언트에게 쿠키를 전달하고, 클라이언트는 이 쿠키를 저장하여 나중에 같은 사이트에 접속할 때 해당 정보를 함께 전송합니다. 쿠키는 주로 사용자의 로그인 정보, 선호하는 설정, 장바구니 내용 등을 저장하는 데 사용됩니다.
웹 개발에서 사용자의 상태 정보를 서버 측에 저장하고 관리하기 위한 방법입니다.
사용자가 웹 사이트에 접속하여 로그인한 후부터 로그아웃하거나 브라우저를 닫는 시점을 말합니다.
웹 사이트에 접속하면 서버는 해당 사용자에 대한 고유한 식별자(session ID)를 생성하고 이를 클라이언트에게 전달합니다. 클라이언트는 이 식별자를 쿠키나 URL 매개변수를 통해 보내며, 서버는 이를 사용하여 사용자의 데이터를 관리하고 유지합니다.
세션ID
보통 랜덤한 문자열로 생성되며, 사용자의 브라우저에 쿠키 형태로 저장됩니다. 이 세션 ID는 클라이언트와 서버 간의 데이터 전달에 사용되며, 서버 측에서는 해당 세션 ID를 기반으로 세션 데이터를 관리합니다.
쿠키 (Cookie) | 세션 (Session) | |
---|---|---|
저장위치 | 클라이언트(브라우저) | 서버 |
용량 | 일반적으로 작음 | 세션에 비해 상대적으로 큼 |
보안 | 보안에 취약 (클라이언트에서 수정 가능) | 상대적으로 높음 (서버에 저장되므로, 클라이언트 수정 불가능) |
속성 | 이름, 값, 도메인, 경로, 만료일 등 | 주로 세션 ID로 식별, 사용자 정보 등 저장 가능 |
만료 | 지정 가능, 브라우저 닫을 때 삭제될 수도 있음 | 브라우저 닫을 때, 일정 시간 후 만료 가능 |
저장형식 | Text | Object |
웹 페이지 요소(이미지, 스타일시트, 스크립트 등)를 저장하기 위한 임시 저장소입니다.
(쿠키,세션은 정보를 저장하기 위해 사용됩니다.)
웹 페이지 성능을 개선과 빠르게 렌더링 할 수 있도록 도와줍니다.
(쿠키와 세션은 사용자 인증과 상태 관리에 활용되어 사용자의 보안을 강화합니다.)
[참고한 자료]