본문 바로가기
교육후 개인공부/Computer Science

쿠키, 세션, 토큰

by 뭉지야 2024. 1. 9.
728x90

쿠키

-쿠키에는 사용자에게 맡겨도 되는 정보만 저장한다.

-사용자는 브라우저의 설정 화면이나 개발자 도구에서 쿠키를 확인하고 수정, 삭제할수있다. 제3자가 조회하는것도 가능하다. 그래서 개인정보를 담은 내용이나 보안상 민감한 정보를 저장하는데에는 적합하지 않다.

-남에게 편취되거나 사용자에 의해 조작되어도 크게 문제되지 않는 정보를 저장함으로써 웹사이트 이용을 편리하게 해주는 것이다.

-예를 들면 자주보는 웹툰목록이나 웹페이지의 다크 모드 설정 여부 등과 같은 간단한 정보다.

 

 

세션

-사용자가 사이트에 로그인한 상태라는 점을 서버에 인증하지 못하면 클릭을 할때마다 반복해서 아이디와 비밀번호를 서버에 제공해야 합니다. 이런 번거로움을 해결하기 위해 사용하는 것이 세션이다.

-사용자가 사이트에 한번 로그인하면 유효기간이 끝날때까지 더이상 아이디와 비밀번호를 입력하지 않아도 되도록 사용자가 이미 서버로부터 인증받았음을 증명해주는 세션이라는 증서가 필요합니다. 사용자가 서버에 올바른 아이디와 비밀번호로 로그인에 성공하면 서버는 세션 아이디라는 데이터를 만듭니다. 사용자는 서버로부터 받은 세션 아이디를 쿠키로 저장한 다음 앞으로의 모든 요청에 함께 전달합니다. 

-로그인 여부 등 사용자와 서버의 관계가 기억되어 보존되고 있는 상태를 말한다.

-안전하고 효과적이지만 단점이 있습니다. 서버는 요청마다 함께 딸려오는 세션 아이디를 바로바로 확인할수 있도록 로그인한 사용자의 아이디를 메모리라는 책상에 올려둡니다.  메모리에 올려둔 데이터를 빠르게 확인할수 있다는장점이 있는 대신 공간이 한정되어있죠. 서버에 동시 접속하는 사용자가 많아지면 메모리 공간이 부족해져서 서버에 부하가 걸리고 화면이 움직이지 않는등의 문제가 발생할수 있습니다.

   

 

토큰

-메모리공간을 많이 차지하는 세션 방식의 대안은 로그인한 사용자에게 세션 아이디 대신 토큰을 발급해주는 것입니다.

-토큰을 받아간 사용자가 이를 쿠키로 저장해두고 필요할때마다 제시하면 서버는 따로 책상에 올려놓은 것을 확인할 필요없이 자기가 발급한 토큰임을 알아보고 사용자의 요청을허가해주는 것입니다.

-한계도 있습니다. 로그인을 제한하기 위해 필요한 때에 로그인되어 있는 사용자를 서버가 강제로 로그아웃을 시킬수 있어야 하는데, 토큰 방식에서는 이것이 불가능합니다. 한번 발행한 토큰은 유효기간이 끝나기 전까지 따로 통제할수 없기 때문에 세션에 비해 토큰 정보를 탈취당할 가능성이 높습니다. 그러나 토큰은 쿠키처럼 만료기간을 정할수 있어서 만료 시간을 짧게 지정해 피해를 줄일수 있습니다. 

 

 

캐시

-  한번 전송받은 데이터는 저장해놨다가 다시 사용할때 꺼내 쓴다면 반복적으로 서버에 데이터 전송을 요청할필요가 없다. 이때 사용되는 기술이 캐시이다. 

-캐시 덕분에 반복적으로 사용하는 콘텐츠를 빠르게 이용할수 있고 데이터사용량도 줄일수 있다.

-쿠키와 같이 캐시도 각 브라우저의 설정 화면에서 조작해비울수 있습니다.

-캐시 덕분에 사용자는같은 사이트를다시 방문하거나 동영상을 다시 시청할때 추가로 통신비를 지출하지 않고 로딩 없이 콘텐츠를 이용할수 있습니다.  

 

 

쿠키와 캐시의 차이점

-쿠키와 캐시 모두 정보를 저장하여 재활용하는 기술이지만, 

쿠키는 사용자의 수고를 덜어주는데 목적을 두고

캐시는 데이터의 전송량을 줄이고 서비스 이용 속도를 높이는데 목적을 둔다.     

 

 

CDN(콘텐츠 전송 네트워크) 

-캐시를 사용하지 않고 매번 정보가 전송되는 것은 사용자로서도 불편하지만, 서버에도 큰부담이 됩니다. 이 문제를 해결하기 위해 사용하는 것이 바로 CDN이다    

-지리적으로 분산된 여러개의 서버를 이용해 웹 콘텐츠를 사용자와 가까운 서버에서 전송함으로써 전송 속도를 높입니다.

-여러 지역에 설치된 캐시 서버들을 사용하여 본 서버로 들어오는 요청들을 분산 처리하는 서비스입니다.

CDN을 사용하면 본 서버는 캐시 서버에 데이터를 한번씩만 전송하면 됩니다.

-대량의 데이터를 전송하는 서비스, 특히 유튜브나 넷플릭스 같은 동영상 서비스에 필수적이다.

      

728x90

'교육후 개인공부 > Computer Science' 카테고리의 다른 글

[CS] API  (1) 2024.01.22
[CS] 가상머신  (0) 2024.01.22
DBMS, RDBMS  (0) 2024.01.11
IP, DNS, HTTP, HTTPS  (0) 2024.01.10
XML, JSON, YAML, AJAX  (0) 2024.01.10