개발공부/저녁공부

쿠키와 세션

맙소사 2022. 1. 25. 16:13

쿠키와 세션

HTTP는 항상 연결되어있는것이 아닌 필요할 때 마다 요청을 보내고 응답을 받는 비연결성이라는 특징을 가지고 있다. 로그인을 한 뒤, 다른 도메인으로 이동했다 기존 사이트로 돌아오면 로그인 정보가 유지되지 않는다는 것.

 

* 쿠키

- 사용자의 컴퓨터에 저장하는 작은 기록 파일. 클라이언트에 저장해 클라이언트 메모리를 사용한다.

- 클라이언트 PC에 저장했다가 필요시 정보를 참조하거나 재사용 할 수 있다. 이름, , 만료일(저장기간), 경로 정보로 구성되어 있다.

- 클라이언트에 총 300개의 쿠키를 저장할 수 있으며 도메인 당 20개의 쿠키를 가질 수 있다. 하나의 쿠키는 최대 4KB까지 저장 가능하다.

- 보안에 약하다. 쿠키를 훔쳐 계정 접근 권한을 탈취 후 유저의 정보를 악용할 수 있음.

 

* 세션

- 서버에 세션에 대한 정보를 저장해놓고 세션 쿠키를 클라이언트에게 주어 서버가 클라이언트를 식별할 수 있도록 하는 방식. 용량제한이 없다.

- 서버에 저장되어 서버 메모리로 로딩하기 때문에 세션이 생길 때마다 리소스를 차지한다.

- 서버에 세션 객체를 생성하며 각 클라이언트마다 고유한 세션 ID값을 부여한다.

- 쿠키를 사용하여 세선 ID값을 클라이언트에 보낸다. 웹 브라우저가 종료되면 세션 쿠키는 삭제된다.

 


쿠키 세션
저장위치 클라이언트에 저장 서버에 저장
보안 클라이언트의 브라우저 로컬에 저장되기 때문에 변질되거나 HTTP리퀘스트 요청 시 갈취당할 가능성이 있어 보안에 취약함 쿠키를 이용해 세션 ID만 저장하고 그것을 구분해 서버에서 처리하기 때문에 쿠키에 비하면 안전함
만료시점 만료시간은 있지만 파일로 저장되기 때문에 브라우저를 종료해도 계속해서 정보가 남아있다. 만료기간에 따라 상대적으로 넉넉하게 쿠키를 삭제할 때 까지 유지된다. 만료시간을 정할 수 는 있지만 브라우저가 종료되면 그에 상관없이 삭제된다.
속도 쿠키에 정보가 있기 때문에 서버 요청 시 속도가 빠르다. 정보가 서버에 있기 때문에 쿠키에 비해 느리다.

 

 

로컬 스토리지

브라우저를 종료해도 유지되는 데이터로, 명시적으로 지우지 않는 한 영구적으로 저장된다. 서로 다른 브라우저 탭이라도 동일한 도메인이라면 동일한 로컬 스토리지를 사용한다. 자동 로그인같은 지속적으로 필요한 정보를 저장하기에 좋다.

 

세션 스토리지

window 객체와 동일한 유효 범위 및 생존 기간을 가지며 탭을 닫을 시 데이터가 삭제된다. 잠시동안 필요한 정보를 저장하기에 좋다.(일회성 로그인 등)