엘리허 2021. 9. 17. 21:07

 

쿠키/세션이란?

웹페이지에 접속하기 위한 http 프로토콜은 상태유지 기능을 가지고 있지 않음.

HTTP의 비연결성과 비상태성을 보완하기 위해, 새로 페이지를 요청하거나, 사용자의 정보를 기억하는등 데이터유지를 해서 서버가 클라이언트를 식별하게 해주는 것이 쿠키와 세션.

 

공통점 

웹 통신간 유지하려는 정보를 저장하기 위해 사용됨

 

차이점

저장 위치, 저장형식, 용량제한, 만료시점 등

쿠키: 개인 PC에 저장됨

세션: 접속중인 웹서버에 저장됨

 

세션을 쓰면 되는데 쿠키를 사용하는 이유?

-세션이 쿠키에 비해 보안도가 높은 편이나, 세션은 서버 자원을 사용하기 때문에 사용자가 많을 경우 소모되는 자원이 상당 함으로, 쿠키와 세션을 적절한 요소 및 기능에 병행 사용 함으로써, 서버 자원의 낭비를 방지, 웹사이트의 속도를 높일수 있다.

 

쿠키

http일종

사용자가 어떠한 웹사이트를 방문 할 경우,

그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일

 

쿠키특징

  1. 이름 값, 만료일 경보 정보로 구성되어 있음
  2. 클라이언트에 총 300개 쿠키를 저장 가능
  3. 하나의 도메인당 20개 쿠키 가질수 있음
  4. 하나의 쿠키는 4KB까지 저장 가능
  5. 서버가 주체가 되어 필요한 정보를 지정
  6. http 요청마다 메세지를 같이 실어 서버로 전달 

장점

서버의 저장 공간 절약

 

단점

  1. 보안 취약(요청시 쿠키값을 그대로 보냄,)
  2. 작은 허용 용량
  3. 웹브라우저마다 지원 형태가 다름
  4. 웹브라우저를 변경할 경우 다른 웹브라우저에서 저장한 쿠키값을 사용할수 없음
  5. 사용자가 보안상의 문제로 거부할 경우 사용 불가능
  6. 네트워크 부하:쿠키의 크기가 클경우 네트워크 부하가 커짐
  7. 한번에 하나의 정보만 저장 가능

 

세션

방문자가 웹브라우저를 통해 웹서버에 접속한 시점으로부터 웹브라우저를 종료하여 연결은 끝내는 시점 동안  같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 서버에 정보를 유지시키는 기술

즉, 방문자가 웹서버에 접속해있는 상태를 하나의 단위로 보고 그것을 세션이라고 함

고유한 session id 생성후 클라이언트가 보낸 session id를 참조하여 정보 추출

http 요청마다 메세지에 session id만을 포함 시켜서 보냄 

 

세션의 특징

  1. 웹서버에 웹컨테이너의 상태를 유지하기 위한 정보를 저장한다
  2. 웹서버의 저장되는 쿠키
  3. 브라우저를 닫거나 서버에서 세션을 삭제했을때만 삭제 되므로 쿠키보다 비교적 보안이 좋다
  4. 저장 데이터에 제한이 없다(서버 용량이 허용하는 한)
  5. 각 클라이언트의 session ID를 부여한다

장점

  1. 어느정도 보안유지: 최초 접속 때를 제외하고 session id만 사용
  2. 큰 용량 허용
  3.  서버에 저장 되므로, 클라이언트 웹브라우저에 의존하지 않아도 됨
  4.  데이터를 hash table에 저장 한번에 많은 정보를 하나의 세션 객체에 저장 가능

 

단점

  1. 서버에 부하 서버에 데이터를 저장하므로 양이 많아 질수록 서버에 부하가 커짐