쿠키와 세션

공부의 기록·2021년 10월 30일
0

Dev Computer Science

목록 보기
4/18
post-thumbnail

introduction

[쿠키](https://namu.wiki/w/%EC%BF%A0%ED%82%A4(%EB%8F%99%EC%9D%8C%EC%9D%B4%EC%9D%98%EC%96%B4)
쿠키는 인터넷 웹사이트에 접속할 때, server 에 의해 client 의 컴퓨터에 저장되는 정보를 뜻한다. 주로 로그인 정보나 장바구니 정보를 저장하는 용도로 쓴다. 사운드나 이미지 파일을 일시적으로 저장하여 로딩을 빠르게하는 캐시와는 다르므로 조심하자.

세션
세션은 인터넷 웹사이트에서, server에 의해 server에서 client 정보를 임시로 갈무리 해둔 것을 의미한다. 쿠키와는 저장되는 장소가 다르다.

history

EU에서는 client 의 쿠키를 사용할 경우 무조건 쿠키 사용 목적에 대한 정보 등과 함께 동의성 메세지를 띄워야 한다.

explanation

쿠키

쿠키는 local 에 저장되는 key, value 가 들어있는 데이터 파일이다.
쿠키는 이름, 값, 만료, 날짜/시간(쿠키 저장기간), 경로 정보 등을 포함한다.
쿠키는 client 상태 정보를 저장했다가 request 할 때 참조한다.
쿠키는 server 측에서 날짜/시간 등을 지정해 만료기한 설정이 가능하다.
이 기한의 유무에 따라 지속 쿠키, 세션 쿠키로 구분 저장된다.

이러한 쿠키는 브라우저의 종류에 따라서 저장 타켓, 방식, 위치 등이 다르다고 한다.
예를 들면 구글 크롬은 쿠키를 C:/Users/<사용자 이름>/AppData/Google/Chrome/User Data/Default/Local Storage 를 저장한다고 한다. 하지만 인터넷 캐쉬를 제외한 다른 저장소는 SQLite Database 파일로 인코딩된다고 한다.

세션 쿠키

기한이 있는 쿠키이다.
브라우저 메모리에 저장되므로 브라우저가 종료되면 세션 쿠키는 사라진다.
하지만 브라우저를 다시 키면 해당 쿠키는 다시 생겨난다.

지속 쿠키

기한이 없는 쿠키이다.
파일로 저장되므로 세션 쿠키에 비해 보안에 취약점이 있다.

쿠키 프로세스

  1. broswer 가 웹 페이지에 접속한다.
  2. client 가 request 를 하면, server 가 http header 를 통해 server 에서 제공하는 cookie value 를 response 해주고 client 가 이를 저장한다.
  3. client 가 다시 request 시, http header 에 cookie data 를 담는다.
  4. server 는 client 의 request 에서 cookie 값을 참고하여 비즈니스 로직을 수행한다.

쿠키의 특징

쿠키의 사용 사례는 다음과 같다.

  • 자동로그인
  • 오늘 더 이상 이 창을 보지 않기
  • 쇼핑몰의 장바구니

쿠키의 한계는 다음과 같다.

  • client 에 최대 300개
  • server domain 하나 당 최대 20개
  • cookie 의 최대용량은 4KB

쿠키의 사용은 domain 설정에 따라서 지정된 domain 으로 client 가 요청할 때만 자동으로 request header에 참조되어 사용된다.

세션

세션은 client의 상태 정보를 server에 저장하는 기술로, 논리적인 연결이라고도 한다.
세션은 client를 구분할 수 있는 id를 지정하고 이를 session-id라고 한다.

세션 프로세스

  1. client 가 server 에 요청했을 때, 필요에 따라 session 에 client 의 데이터를 저장하고 session id 를 응답을 통해 발급해준다.
  1. client 는 발급받은 session id 를 쿠키로 저장한다.

  2. client 는 다시 서버에 요청할 때, server에 session id 를 전달한다.

쿠키와 세션 차이

저장 위치

쿠키 : client 메모리 또는 파일
세션 : server 메모리

보안

지속 쿠키는 파일로 저장될 시 탈취, 변조될 가능성이 있다.
쿠키는 request, response 에서 스나이핑 당할 위험성이 있다.

라이프 사이클

지속 쿠키는 브라우저를 종료해도 살아남는다.
세션 쿠키는 만료시간/날짜 혹은 브라우조 종료 등으로 소멸할 수 있다.

속도

쿠키는 client 에 정보가 있어 참조가 빠르다.
세션은 server 에 정보가 있어 참조가 비교적 느리다.

쿠키 사용 이유

쿠키는 server 의 자원을 사용하지 않기 때문이다.

쿠키와 세션... 그리고 캐시

쿠키와 세션은 캐시와 엄연히 다르다.
이에 관해서는 서칭하여 캐시에 관한 관련 문서를 작성하자.

reference

[쿠키 나무위키](https://namu.wiki/w/%EC%BF%A0%ED%82%A4(%EB%8F%99%EC%9D%8C%EC%9D%B4%EC%9D%98%EC%96%B4)
세션 나무위키
정아마추어 블로그
스터디룸 블로그
Quora Post

profile
2022년 12월 9일 부터 노션 페이지에서 작성을 이어가고 있습니다.

0개의 댓글