컴퓨터 공학/알고리즘

👉 [CS] Cookie 와 Session 이해

bitcodic 2019. 12. 21. 18:50

웹 개발 中

 

클라이언트는 HTTP 를 통해 서버에 해당 웹문서를 요청하고 서버는 해당하는 요청에 따라 문서를 응답하는 형식을 기본으로 한다.

 

이것이 우리가 통용하고 있는 웹서비스의 구조이다. 요청과 응답, 이 두가지 개념을 갖고 그 위에 다양한 기술들이 쓰이는 것 뿐.

 

쿠키(Cookie)

 

출처 https://rocabilly.tistory.com/98

"하루동안 이 창을 열지 않음" 과 같은 것을 본 적이 있을 것이다.

 

여기에 체크를 하게 되면 클라이언트의 쿠키에 해당 값을 False 로 지정할 수 있도록 처리되는 것이다.

 

Set-Cookie : eventPopup = 'False' 처럼 말이다. (그냥 이해하기 쉬운 예시임. 이렇게 안할듯)

 

나중에 이런 것들이 쌓여서

 

Cookie 값들을 만들어내고 웹서버에 요청을 할때, 같이 전달해서 수고를 더는 것이다.

 

"네가 필요한거 이미 HTTP 요청 안에 다 넣어서 보냈음 ㅇㅇ 그니까 알아서 응답해" 와 같은 방식. 

 

세션 (Session)

 

세션의 경우는 웹서버에서도 값을 저장한다.

 

클라이언트 1대당 세션값을 부여해서 웹서버 메모리에도 저장하고, 클라이언트에게도 전달한다.

 

클라이언트는 이 세션값을 쿠키에 저장해서 다음 요청할때 같이 보내준다.

 

그러면 서버는 세션값을 통해 클라이언트가 누군지 식별하고 적절한 처리를 한다.

 

가령, A/B 클라이언트가 로그인을 통해 세션을 연결하면, A는 asd123 이라는 세션값을 부여하고

B는 123zxc 라는 세션값을 부여한다. 세션값이 asd123 인 애가 서버에 어떤 요청을 하면 A 로그인 정보와 함께 넘겨주는 등이다.

 

아, 이 세션값은 쿠키에 저장한다. 그러니까 세션은 쿠키를 활용하는 기술이다.

 

 

아무래도 세션의 경우, 서버 메모리에 Value로 저장하기 때문에 부담이 있다.

적절히 잘 활용하는 것이 백엔드 개발자의 능력이다. 20000