쿠키 (Cookie)
크롬이나 사파리같은 브라우저에 저장되는 작은 텍스트 조각
즉, 사용자가 가지고 있는 정보
- 사용자는 쿠키를 확인하고 수정, 삭제 가능
- 제 3자가 조회하는 것도 가능
- 남에게 탈취되거나 사용자에 의해 조작되어도 문제되지 않을 정보만 저장
- ex)
- 자주보는 웹툰 목록, 웹 페이지 다크모드 설정 여부
- 로그인 시 “아이디와 비밀번호를 저장하시겠습니까?
- 쇼핑몰 장바구니
- 자동로그인
- 팝업에서 “오늘 더 이상 이 창을 보지 않음" 체크
- Key:Value의 형태
- 유효시간 명시 가능
- 유효시간이 남아 있다면 브라우저 종료 시에도 남아 있음
구성 요소
- 이름 : 각각의 쿠키를 구별하는 데 사용되는 이름
- 값 : 쿠키의 이름과 관련된 값
- 유효시간 : 쿠키의 유지시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
세션 (Session)
쿠키를 기반으로 하고 있지만, 서버 (세션 스토리지)에 정보를 저장, 관리
- 클라이언트를 구분하기 위해 유니크한 세션ID를 부여
- 브라우저를 종료할 때 까지 인증상태 유지
- 쿠키를 포함한 요청이 외부에 노출되더라도 세션 ID 자체는 유의미한 개인정보를 담고 있지 않다
- 그러나 해커가 이를 중간에 탈취해 클라이언트인척 위장할 수 있다는 한계가 존재
- 각 사용자마다 고유한 세션ID가 발급되기 때문에, 요청이 들어올 때마다 회원정보를 확인할 필요 X
- 서버에서 세션 저장소를 사용하므로 요청이 많아지면 서버에 부하가 심해진다
- 즉, 동접자 수가 많은 웹사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인
쿠키 세션 차이
토큰 (Token)
인증을 위해 사용하는 암호화된 문자열
- 세션 인증에서는 서버가 세션 ID를 저장하고 클라이언트가 쿠키에 실어 보낸 세션 ID와 대조해서 확인하는 반면, 토큰을 사용하면 요청을 받은 서버는 토큰이 유효한지만 확인
- HTTP 통신의 Stateless 한 성격과 더 적합한 인증 방식
'CS' 카테고리의 다른 글
OSIV (0) | 2023.08.17 |
---|---|
캐시 (0) | 2023.08.16 |
JWT (0) | 2023.08.10 |
URI URL URN (0) | 2023.08.03 |
PATCH와 PUT (0) | 2023.08.03 |