Session, Cookie, Token

2023. 8. 16. 10:32Server

https://www.youtube.com/watch?v=tosLBcAX1vk&list=PLxs6G3E6qDJgxsJIr5g3lHO-VwJ2veF0h&index=3&t=7s 

 

Server와 Client가 통신 할 때 여러 데이터를 저장할 필요가 생기는데 이때 Cookie, Session, Token등의 여러 방법이 사용된다

 

Cookie는 Http을 이용한 웹 통신시 필요시 Server가 Client에 보내는 데이터이며 이는 Client에 저장된다

또한 Server와 통신 할 때 Client는 Server의 도메인이 가지고 있는 Cookie의 도메인과 같으면 이를 Server로 전송한다

 

Session은 Server에 저장된 Client의 데이터이다 

 

간단한 Cookie와 Session의 예제를 들면 Client가 login시 이는 Session에 저장되어 Session ID를 부여 받고 그 ID를 Cookie에 실어 다시 Client에게 전해진다 그 후부터는 통신시 Server는 Client의 Cookie에 저장된 Session ID를 Session에서 확인하여 Client의 로그인 정보를 확인한다
이렇듯 Session에 저장된 Session ID와 쿠키를 통해 들어온 데이터를 비교하여 Client를 식별하기 때문에 Client가 많으면 처리에 시간이 걸릴 수 있다

 

Token은 JWT(JSON Web Token)등이 있는데 Token은 Server가 Client에게 보낸 암호화 데이터이다 이를 통해 Server는 Client를 식별 할 수 있다

Session과 다른 점은 바로 Server측에서는 따로 데이터를 저장하지 않고 토큰만을 가지고 사용자를 식별한 다는 것인데 이를 통하여 많은 수의 사용자가 들어오더라도 빠르게 식별이 가능하다
단 토큰에 모든 정보가 담겨 있는 만큼 비말번호등 탈취당하면 위험한 정보는 담지 말아야 하고 또한 기본적으로 사용자가 토큰을 탈취 당했을 시 그 토큰이 탈취 당한 토큰인지 아닌 지를 구분 할 수 없다

 

 

또한 쿠키의 여러 제한 때문에 좀더 다양한 저장 방법이 HTML5에서 추가 되었다

 

Chrome을 사용시 F12를 눌러 Application을 눌러보면 현재 browser에 저장된 데이터를 볼 수 있다

 

 

 

'Server' 카테고리의 다른 글

Nginx Load Balancing  (0) 2024.03.12
JWT  (0) 2024.01.13
Http의 한계와 WebSocket  (0) 2023.08.16
Winsock2.h를 이용한 TCP 통신  (0) 2023.08.11
Http에서의 Post Get Method  (0) 2023.08.07