-
쿠키와 세션의 차이개발공부/CS지식 2021. 11. 9. 16:22
00. 근본적인 의문
왜 쿠키랑 세션을 알아야할까?
여러 기능 중, 금번은 로그인 기능을 구현하기 위해 알아야한다.
Web의 HTTP 통신은, stateless라는 특징이 있다.
한번 통신을 완료하면 과거 통신 상태를 남기지 않는다는 말이다.
(이게 무슨 소리?)
ex)
로그인해서 마이페이지에 들어갔다.(통신: id/pw로 요청해서, 응답 값으로 마이페이지를 띄웠다. == 통신을 완료)
마이페이지를 수정하고 홈("/")으로 이동했더니 로그아웃이 되었다. (새로운 통신이라 이전의 로그인 상태를 가져오지 못 한다. == 새로 로그인 해야한다.)
모든 페이지 및 기능을 이용할때 로그인을 다시 해야한다고 하면, 너무 불편하지 않을 수 없다.
이때, 쿠키와 세션을 이용하면 HTTP 통신에 로그인 상태를 유지할 수 있다.
01. 개념 정리
한국말보다 영문이 더 이해가 직관적이라 아래와 같이 정리한다.
쿠키란? A cookie is just a key-value pair that is stored in the user's browser
세션이란? A session is a set of data that is stored on the server
쿠키는 브라우저의 저장되는 데이터이다.
브라우저 어디에 저장?
웹 브라우저 스토리지!
반면에, 세션은 서버에 저장되는 데이터이다.
id/pw data를 받으면 서버는 세션 id라는 것을 만들어 세션 저장소(메모리)에 저장하고,
세션 id 값을 쿠키에 저장하여 클라이언트에 응답을 줄때 같이 준다.
이때, 쿠키에 저장된 세션id 값이 key값으로 작용해서,
서버 세션을 활용해 로그인을 유지할 수 있는 것이다.
세션의 특징으로는, 만료시간이 있다는 것이고 브라우저를 종료해도 세션은 만료된다.
출처:
1. https://velog.io/@woodstock1993/%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98
반응형'개발공부 > CS지식' 카테고리의 다른 글
개발문서 - 컨플루언스(Confluence) 입문 (0) 2023.07.16 쉬운 URL과 URL의 차이 (2) 2022.02.02 네트워크- 네트워크 정의, 패킷, 비트, 바이트, LAN, WAN (0) 2022.01.10 REST API란? (0) 2022.01.10 동기와 비동기 (0) 2021.11.15