HTTP는 항상 연결되어 있는 것이 아닌 필요할 때 마다 요청을 보내고 응답을 받으면 서버가 접속을 끊는다는 특징을 가지고 있는데 그러면 상태 정보가 유지되지 않기 때문에 로그인 정보를 유지하기 위한 방법이 쿠키와 세션이다.
어떠한 웹 사이트를 방문할 경우 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일
필요서 정보를 참조하거나 재사용이 가능
단점으로는 클라이언트단에 저장이 되어 보안에 약하다
웹 서버에 연결된 순간부터 웹 브라우저가 닫아 서버와의 HTTP 통신을 끝낼 때까지의 기간
보통은 서버에 세션에 대한 정보를 저장해 놓고 세션 쿠키를 클라이언트에 줘서 서버가 클라이언트를 식별할 수있도록 하는 방식
저장 위치
Cookie : 클라이언트(파일)
Session : 서버
보안
Cookie : 클라이언트의 브라우저에 저장하기에 보안에 취약
Session : 서버에서 처리하기에 비교적으로 안전
라이프 사이클
Cookie : 만료시간이 있지만 브라우저 종료해도 계속해서 정보가 남아있기에 쿠키 삭제할 때까지 유지 가능
Session : 만료시간을 정할 수 있지만 브라우저가 종료되면 그에 상관없이 삭제
속도
Cookie : 쿠키에 정보가 있기 때문에 서버에 요청시 속도가 빠름
Session : 정보가 서버에 있기 때문에 처리가 요구되어 비교적으로 느림
데이터 유지 측면
LocalStorage
저장한 데이터를 명시적으로 지우지 않는 이상 영구적으로 보관이 가능
SessionStorage
브라우저가 종료되면 데이터도 같이 지워짐