설명 순서는 다음과 같습니다.
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 |