Cookie와 Session은 무엇인가?

적자생존·2022년 7월 12일
0

Study

목록 보기
3/10

가. Cookie란?

쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각으로 브라우저는 이 데이터 조각을 저장해 놓았다가 동일한 서버에 재요청 시 쿠키의 정보를 함께 전송한다.

나. Cookie의 목적

상태가 없는 무상태성을 가진 HTTP에서 상태 정보를 기억하기 위해서 사용됨. 사용자 구분을 위해서 매우 유용하지만 클라이언트가 수정할 수도 있고 해커가 탈취하기에 매우 쉽기 때문에 비밀번호, 개인정보 등 민감한 정보를 담지 않는다.

이에 쿠키는 3가지의 목적 정도로 나뉜다.

1) 세션 관리

서버에 저장되어 있는 정보들에 대한 구분할 수 있는 ID

2) 개인화

테마, 선호도 등의 정보

3) 트래킹

사용자의 행동을 기록하고 분석

다. Cookie의 동작 방식

1) 클라이언트 요청 (사용자가 웹사이트 접근) 

2) 웹서버는 쿠키생성

3) 생성한 쿠키에 정보를 담아 http화면을 돌려줄때 같이 클라이언트에게 넘긴다.

4) 넘겨받은 쿠키는 클라이언트가 가지고 있다가 다시 서버에 요청 시, 쿠키를 함께 전송.

5) 동일 사이트 재방문시 클라이언트 pc에 해당쿠키가 있는경우, 요청페이지와 함께 쿠키 전송. 

1) 이름

2) 값

3) 속성

이름과 값은 필수이며 속성은 옵션 값으로 만료시간, 도메인 등의 정보가 올 수 있음

2. Session

가. Session이란??

브라우저가 서버와 연결되어 있는 동안 유지하는 데이터들의 집합이며 클라이언트 별로 클라이언트 정보를 서버에 저장한다.

나. Session의 목적

서버에 저장되기 때문에 Cookie보다는 보안성이 뛰어나서 민감한 정보를 저장할 때 사용한다.

다. Session의 동작방식

1) 클라이언트가 웹사이트에 접속해 서버에 요청한다.

2) 서버는 접속한 클라이언트에게 세션 ID를 부여해서 응답한다.

3) 클라이언트는 해당 세션 ID를 헤더 쿠키에 넣어 데이터를 요청한다.

4) 서버는 세션 ID를 통해 클라이언트를 구별하여 데이터를 알맞게 응답한다.

5) 클라이언트가 접속을 종료한다.

6) 서버는 세션 ID를 제거한다.

3. Cookie와 Session의 차이

가. 쿠키

1) 클라이언트 쪽에 저장한다. (웹 브라우저)

2) 브라우저가 꺼져도 삭제되지 않고 사용자가 삭제하거나 정해진 시간만큼 유지된다.

3) 문자열만 저장할 수 있다.

4) 클라이언트에서 보내기 때문에 속도가 빠르다.

5) 민감한 데이터를 스니핑 당할수도 있기 때문에 보안에 취약하다.

나. 세션

1) 서버쪽에 저장한다. (서버의 메모리 혹은 데이터베이스)

2) 브라우저가 꺼질 경우 삭제된다.

3) 문자열 뿐 아니라 객체도 저장할 수 있다.

4) 서버쪽에서 처리하기 때문에 속도가 비교적 느리다.

5) 서버에서 민감한 데이터를 갖고 있기 때문에 비교적 보안이 좋다.

4. 참고자료

https://beomy.github.io/tech/browser/cookie/
https://lovefor-you.tistory.com/247

profile
적는 자만이 생존한다.

0개의 댓글