Cookei

쿠키가 뭔지 일단 알아보자~!

서버는 쿠키를 사용해서 너의 브라우저(크롬, 엣지 등)에 데이터를 넣을 수 있단다.

너의 관한 것을 기억하려고.

 

일단, 니가 사이트에 방문하면 너의 브라우저는 서버에 페이지를 요청하겠지.

 

서버가 응답할때 필요한 데이터(니가 요청한 데이터)와 함께

 

너의 브라우저에 보낼 쿠키가 있을 수 있는 것이지!

 

서버 -------------< CSS, HTML, Datas.... & Cooikes >-------> 브라우저

 

일단 받았으니깐,

 

브라우저는 쿠키를 저장하고, 

 

그 웹사이트에 접속할때 마다. 브라우저는 요청할때 쿠키도 같이 보내게 될거야. !

 

쿠키는 사이트마다 달라, 엄밀히 말하면 도메인마다 다른거지.

 

korea.com 에서 주고받은 쿠키 (초코칩쿠키) 와 japan.com 에서 주고받은 쿠키(방사능맛쿠키) 는 다른거지.

 

쿠키는 서버가 정한 기간에 따라 유효기간이 있어

 

쿠키에는 여러가지 정보를 담을 수 도 있어, 이걸로 인증도 가능하고 말이지.

 

내가 항상 쓰는 설정이 있으면 쿠키를 주고 받아서 기존에 쓰던 설정대로

데이터를 불러올수 있어

 

세션을 알아보잦! (Session)

너의 브라우저에서 무언가를 요청을 하게 되면, 쿠키를 주고 받는다고 이야기 했어

 

자 , 로그인이 필요한 웹사이트에서 무언가를 요청해서 데이터를 확인하거나 페이지 이동을

하고싶을때마다 로그인을 해야할까?

 

내가 로그인 한 상태인지 서버는 어떻게 알 수 있지?

 

우리는 한번 로그인을 하고 나면 일정시간동안 , 로그인을 안해도 웹사이트를 이용할 수가 있어.

 

그건 세션이 유지되는 덕분이지 엄밀히 말하면 세션 ID를 서버가 계속 확인하고 있는거라구!

 

로그인을 하게되면 서버는 세션ID를 생성해서 발급해줘

 

마지 임시 출입증이라고 생각하면 좋을것 같아.

 

쿠키를 이용해 브라우저가 갖고 있다가 무언가를 요청할때 다시 이 임시출입증을 쿠키에 담아서 보내겠지.

 

그러면, 서버는 쿠키에 담겨진 세션ID를 가지고 너가 누군지 알수 있단 말인거야~

 

옹키동키?

 

참고로 세션을 이용해서 IOS나 Android 앱을 만들수는 있지만, 쿠키는 사용할 수 없어 

그건 브라우저에만 해당되는 얘기야.

 

하지만 이럴경우 토큰(Token)을 사용해.

서버에 토큰을 보내는거지~ 마찬가지로 토큰을 서버에 보내고, 서버는 토큰으로 누구인지 찾는거지.

 

어쨌든, 세션에서 가장 중요한건, 로그인한 유저들의 모든 세션ID를 DB에 저장해놓아야 한다는 것이야.

많은 유저들이 접속 했을때는 그만큼의 세션DB 자원도 더 많이 많이 필요하게 되는 것이지.

 

그래서 JWT를 쓰기도 해 JWT는 토큰방식으로 처리하기 때문에 세션DB를 가질 필요가 없지.

서버는 유저 인증하느라 많은 일을 하는 수고로움이 덜어지지.

 

JWT와 세션의 차이점은 무엇일까?

세션은 로그인정보를 주고 나면 세션ID를 생성해서 DB에 저장하고, 그 정보로 인증을 하지.

JWT는 아주 긴 String형태의 토큰을 생성해서 (ID 정보가 담긴) 브라우저에 넘겨주고

다시 받을때 이정보를 분석해(위조된 토큰인지, 무슨정보가 담겼는지) 유저가 맞는지 판단하는거지.

단, JWT는 암호화 되지 않은 문자열이라, 궁금하겠지만, 보안관련한 내용은 여기서 다루지 않을거야.

하지만 리소스를 필요로 하지 않는점과 개발의 심플함은 굉장한 매력이지.

 

요약.

*쿠키 = 전달 매개체

*토큰 = 서버가 기억하기 위한 특정텍스트 모음

*JWT = 정보를 포함한 토큰, 정보가 들어있으므로 DB없이 검증가능.

 

------------------------------------------------------------------------------------------------------------

[참조 : 해당 내용은 유튜브 -

노마드코더의 [세션 vs 토큰 vs 쿠키? 기초개념 잡아드림. 10분 순삭!]와

기타 IT관련 서적, 및 IT관련 웹사이트 등에서 참조하였습니다. ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming' 카테고리의 다른 글

부트스트랩(Bootstrap) vs Vue  (0) 2022.03.16
프로그래밍이란?  (0) 2020.09.06

+ Recent posts