개발을 배우기 시작한지 얼마 안된 요즘,눈에 많이 들어오는 것들중에 왜 생겨났다하는 의문이 생겨 알아보게 되었다.쿠키와 세션이 무엇인지도 궁금하지만 왜 생겼을까?
인터넷에 찾아보다보니 쿠키와 세션을 사용하게 된 이유가 HTTP의 약점을 보완하기 위해 사용되었다고 한다.그렇다면 HTTP에 대해 먼저 알아보자
HTTP 프로토콜의 특징
- Connectionless(비연결 지향)
클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어버리는 특징
HTTP는 먼저 클라이언트가 request를 서버에 보내면,서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다.- Stateless
통신이 끝나면 상태를 유지하지 않는 특징
연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다. 실제로는 데이터 유지가 필요한 경우가 많으며,정보가 유지되지 않으면 매번 페이지를 이동 때마다 로그인을 다시하거나 상품을 선택했는데 장바구니에 선택한 상품의 정보가 없는 여러 불편한 상황이 발생할 수 있기 때문이다.
->따라서 Stateful 경우를 위해 쿠키와 세션을 사용한다.
HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우,
그 사이트가 사용하고 있는 서버에서 클라이언트에 저장하는 작은 데이터 파일이다.
쿠키를 기반으로 하고 있지만 사용자 정보 파일을 '서버'측에서 저장하고 관리(쿠키 사용)
즉,방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.
쿠키와 세션 비교
어떤 상황에 따라 사용하면 좋을까?
보통 쿠키와 세션의 차이를 물어볼 때,
저장 위치와 보안에 대해서는 많이들 언급하나 요점은 라이프사이클이다.