쿠키와 세션은 http 프로토콜의 단점을 보완하기 위해 존재한다.
http는 클라이언트와 서버 간의 접속을 끊는 순간 통신은 종료되고 상태 정보는 유지되지 않는 특성을 갖고 있다.
어떻게 보면 통신을 유지하고 종료하였을 때 낭비되는 리소스를 줄여 장점으로만 다가올 수 있지만,
반대로 생각해 보면 통신을 시도할 때마다 계속해서 내가 누구인지 인증을 해야 하는 번거로움이 발생하게 된다.
예를 들자면, 우리가 네이버에 로그인을 한 후 서비스를 이용하기 위해 서비스를 클릭해 이동할 때마다 로그인을 계속해서 새로 다시 해 주어야 하는 일이 발생하는 것이다!
쿠키(Cookie)
쿠키는 클라이언트에 저장되는 작은 데이터 파일이며, 일정 시간동안 데이터를 기억하여 로그인 상태를 유지시킨다. 또한 클라이언트의 상태 정보를 본인의 하드디스크에 저장하였다가 필요할 때 참조 및 재사용한다.
쿠키의 원리
1) 클라이언트가 브라우저로 웹 페이지 접속 (네이버 등 접속)
2) 클라이언트가 요청한 웹 페이지를 전송받으면서 동시에 쿠키(클라이언트의 상태정보) 하드에 저장
3) 클라이언트가 재 방문시 웹페이지 요청과 함께 갖고 있던 쿠키값도 전송
4) 지속적으로 로그인 정보를 가지고 있는 것 처럼 사용 (다시 접속해도 로그인이 유지되어 있다는 뜻)
쿠키의 실제 사용 예
- 방문한 사이트에서 아이디와 비밀번호를 저장하시겠습니까? 라고 나타나는 것은 쿠키로 저장하시겠습니까? 라는 뜻.
- 팝업이 나타났을 때 '오늘은 이 창을 보지 않음' 을 누르면 오늘 그 창이 나타나지 않음.
- 온라인 쇼핑몰에서 장바구니에 담기 같은 기능들을 사용하는 경우, 쿠키 형태로 저장된다.
세션(Session)
세션은 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태를 말한다. http 프로토콜은 비접속형 프로토콜로 매 접속시마다 새로운 네트워크 연결이 이루어지는데, 세션이 연결 유지를 가능하게 한다.
클라이언트가 서버에 요청을 보내면 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하여 클라이언트를 구분해 서비스한다.
세션의 원리
1) 클라이언트가 웹사이트에 다시 접속 시 서버에서 세션 ID를 발급해준다.
2) 서버에서 클라이언트로 발급해 준 세션 ID를 쿠키를 사용해 저장한다. (쿠키 이름 : A)
3) 클라이언트가 다시 접속 시, 이 쿠키(A) 를 이용해 세션 ID값을 서버에 전달한다.
세션의 장점
- 각 클라이언트에 고유한 ID를 부여
- 고유 세션 ID를 통해 클라이언트를 구분하여 각각의 클라이언트의 요구에 맞는 서비스 제공 가능
- 사용했던 정보를 서버에 저장하므로 쿠키보다 보안성 우수
세션의 단점
- 서버에 저장되는 세션 때문에 서버에 처리를 요구하는 부하와 별도의 저장 공간이 요구
세션의 실제 사용 예
- ID, PW를 입력하는 로그인과 같이 보안상 중요한 작업은 쿠키가 아닌 세션을 통해 작동됨
쿠키와 세션의 차이
쿠키와 세션은 비슷한 역할을 수행하며 동작하는 원리 또한 비슷하지만, 가장 큰 차이점은 저장되는 위치이다.
쿠키는 클라이언트에 저장되어 보내는 역할을 하고
세션은 서버에 저장되어 클라이언트에게 알려주어 사용한다.
이로 인해 쿠키는 서버의 자원을 전혀 사용하지 않지만, 세션은 서버에 저장되어 고유한 ID를 갖고 있으므로 서버의 자원을 사용하게 된다.
'네트워크' 카테고리의 다른 글
(미완성) DHCP (Dynamic Host Configuration Protocol) (0) | 2020.08.05 |
---|---|
VLAN (Virtual Local Area Network) (0) | 2020.07.31 |
이중화 구성 (0) | 2020.07.30 |
Telnet, SSH (0) | 2020.07.30 |
TCP/IP 4계층 (0) | 2020.07.30 |