쿠키와 세션의 차이
- 사용자 정보가 저장되는 위치 → 쿠키는 서버 자원을 전혀 사용하지 않으며, 세션을 서버 자원을 사용함
- 보안 면에서 세션이 쿠키보다 좋음
- 세션은 쿠키를 이용해 세션ID만 저장하고 그것으로 구분하여 서버에서 처리하기 때문에 비교적 보안성이 높음
- 쿠키는 로컬에 저장되기때문에 변질 될 수 있음
- 속도면에서는 쿠키가 더 우수함
- 쿠키는 쿠키안에 정보가 있어서 요청시 빠르고, 세션은 정보가 서버 안에 있어서 비교적 느림
쿠키(Cookie) 란??
- 웹 사이트에서 사용자의 컴퓨터에 저장하는 작은 데이터 조각
- 서버에서 웹 브라우저로 전송되어 브라우저에서 저장되며, 이후에 같은 웹 사이트에 접속할 때 다시 서버로 전송 → 사용자가 로그인 상태를 유지하거나 사용자의 환경 설정 등을 기억 가능
쿠키 동작 순서
클라이언트가 페이지 요청 → 웹 서버 쿠키 생성 → 정보를 쿠티에 담아 HTTP 화면을 돌려줄 때, 같이 클라이언트에게 돌려줌 → 넘겨받은 쿠키는 클라이언트가 가지고 있다가(로컬PC에 저장) 다시 서버 요청시 쿠키를 전송
세션(Session)이란?
- 서버 측에서 생성되며, 클라이언트와 서버 간에 고유한 식별자인 세션 ID를 통해 연결됨
- 사용자가 로그인한 상태를 유지하거나 사용자의 상태 정보를 서버에서 관리 가능
- 클라이언트 측에서 직접적으로 접근할 수 없기 때문에 보안상 더 안전하게 정보를 관리 가능 → 서버 측에서 관리하기 때문에, 클라이언트가 많아질 수록 서버의 부하가 증가
- 저장 데이터에 제한이 없다. (서버 용량이 허용하는 한에서)
- 각 클라이언트에 고유 Session ID를 부여한다. Session ID로 클라이언트를 구분해 각 요구에 맞는 서비스를 제공
### 동작 순서
로그인 및 웹페이지 요청 → 서버는 세션 ID를 생성 → 이를 쿠키에 저장하여 클라이언트에게 전송
⇒ 서버가 이전에 저장한 정보를 사용할 수 있게 함
캐시(Cache)…?
- 자주 사용되는 데이터나 결과를 미리 저장해 두어서, 이후에 같은 요청이 있을 때 데이터를 빠르게 제공하도록 하는 것
- 웹 페이지 요소를 저장하기 위한 임시 저장소
- 데이터 조회 및 처리 시간을 단축할 수 있기 때문에, 성능 향상에 큰 도움을 줌
- 불필요한 데이터를 저장하지 않도록 주의해야 함
- 캐시된 데이터가 많아지면 메모리나 디스크 공간을 많이 차지하기 때문에, 적절한 사이즈나 용량을 유지하도록 관리 필요
결론
즉, 쿠키와 세션은 사용자의 인증을 도와주고, 캐시는 웹페이지를 빠르게 렌더링 할 수 있게 함
쿠키와 세션은 서버와 클라이언트 간의 통신에 사용되는 반면, 캐시는 클라이언트 측에서 브라우저나 애플리케이션에서 사용되는 기능
[참고]
https://dev-coco.tistory.com/61