쿠키(Cookie)와 세션(Session)
- 쿠키와 세션은 웹브라우저와 웹서버가 통신하는 과정에서 많이 사용되므로 자주 언급된다.
쿠키 (Cookie)
- 사용자가 특정한 웹 사이트에 방문할 때, 사용자 컴퓨터에 저장하는 기록 파일
- 서버의 자원을 전혀 사용하지 않는다.
- ex ) "아이디와 비밀번호를 저장하시겠습니까?"
- Chrome과 같이 웹브라우저에서 저장하는 것은 별개
세션 (Session)
- 한 명의 사용자(브라우저)의 상태를 유지하는 기술이다.
- 서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청한다.
- ex ) 웹사이트에 한번 로그인했을 경우, 다른 페이지로 이동해도 계속 접속 상태가 유지된다.
- 만약 Session ID를 다른 클라이언트에게 탈취당한다면, 다른사람이 자신의 행세를 할 수 있다.
- 서버가 가지고 있는 객체로, 특정 사용자의 로그인 정보를 유지하기 위해 사용할 수 있다.
- 클라이언트는 해당 세션을 계속 유지한다. (메일함에 접속할 때도 세션 ID를 서버에 전송한다.)
- 자신이 누구인지 서버에 알려주는 역할을 수행한다.
Session 인증 방식 예시
Session 방식의 특징
[ 장점 ]
- 클라이언트에게는 세션 ID(회원 식별 목적)을 제공하고, 회원에 대한 중요한 정보를 서버가 가지고 있다.
- 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다.
- 클라이언트 브라우저가 가지고 있는 세션 ID 자체에는 개인정보를 포함하고 있지 않다.
[ 단점 ]
- 악의적인 공격자가 세션 ID를 탈취하여 사용자인 척 위장할 수 있다.
- 웹 서버에 세션 정보를 기록하고 있어야하므로, 접속자가 많을 때 서버에 메모리 부하가 존재할 수 있다.
'CS지식' 카테고리의 다른 글
[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - REST API (0) | 2023.06.16 |
---|---|
[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - HTTP (0) | 2023.06.16 |
[CS지식] 프론트엔드 개발자가 알아야하는 컴공지식 - Web (0) | 2023.06.16 |
[개발공부] 타입스크립트 TypeSciprt를 쓰는 이유? (0) | 2022.08.07 |
맥 OS NVM으로 node 버전 관리하기, 이렇게 쉬운 방법이 없음. (0) | 2022.07.26 |