설명 순서는 다음과 같습니다.

1. 쿠키, 세션의 등장 배경
2. 쿠키의 동작 방식
3. 세션의 동작 방식

1. 쿠키, 세션의 등장 배경

   - 웹을 이용할 때 사용하는 프로토콜인 HTTP는 stateless임.

   - 이 뜻은 서버로 가는 모든 요청이 독립적이라서 이전에 보낸 요청과 연관성이 없다는 뜻임.

   - 그래서 만약 A가 어떤 웹사이트에 로그인을 했다면, A는 그 서버에 '나는 로그인한 사용자 A'라는 정보를 보내줘야함.

   - 이렇게 stateless한 HTTP 프로토콜에 state를 유지할 수 있게 도와주는 역할이 쿠키와 세션임 


2. 쿠키의 동작 방식

   - 동작 방식(ex. 아이디 기억)

      ① 브라우저는 아이디와 비밀번호를 입력하고, 'id 저장'이라는 체크박스를 체크 후 서버에 전송

      ② 서버는 'id 저장'이 true인 것을 확인하고, [ "rememberId" : "i123d" ] 라는 쿠키를 만들어서 브라우저에 전송

      ③ 해당 쿠키는 브라우저에 저장되고, 이 쿠키는 해당 서버에 요청할 때 자동으로 보내지게 됨

      ④ 로그인 입력창에 갔을 때, 서버는 해당 요청에 key가 "rememberId"인 쿠키가 있는 것을 확인하고, 그 value인 "i123d"를 아이디 창에 보여줌

   - 위와 같은 방식으로 이전에 했던 요청과 현재 요청을 연결함


3. 세션의 동작 방식

   - 세션은 쿠키와 함께 동작함

   - 동작 방식(ex. 로그인)

      ① 브라우저는 아이디와 비밀번호를 서버에 전송

      ② 서버는 아이디와 비밀번호가 일치하면, 해당 유저의 정보를 세션 저장소(메모리, DB...)에 저장하고 그 공간을 가리키는 unique한 id를 쿠키로 만들어서 브라우저에 전송

      ③ 브라우저는 이 후 다른 웹페이지를 요청하더라도 해당 쿠키를 같이 전송

      ④ 서버는 쿠키값을 이용해서 세션 저장소를 확인하고, 해당 요청이 로그인된 사용자라는 것을 인지

   - 위와 같은 방식으로 이전에 했던 요청과 현재 요청을 연결

   - 여기서 쿠키는 단지 세션의 unique한 id를 전달하는 것이고, 중요한 user의 정보는 모두 세션(서버쪽)에 저장됨

   - 하지만, 세션/쿠키 방식은 서버에 많은 사람의 정보를 갖고있어야한다는 점에서 서버에 부하가 올 수 있음

   - 이런 세션/쿠키 방식을 보완하기 위해 token방식이 등장(-> 다음에 조사해봐도 좋을듯)


쿠키와 세션에 대해 알아볼 수 있었습니다.

'네트워크' 카테고리의 다른 글

OSI 7계층  (0) 2023.09.12
브라우저에 URL을 입력하면 일어나는 일  (0) 2023.09.12
TCP, UDP  (0) 2023.08.08
3 way handshake, 4 way handshake  (0) 2023.08.02
HTTP와 HTTPS의 차이, 대칭키와 비대칭키  (0) 2023.07.28

+ Recent posts