로그인시 쿠키, 세션 참고
2022. 2. 15. 10:15ㆍTrouble shooting/backend
- 쿠키(Cookie)
- 쿠키란?
- 클라이언트인 웹 브라우저 로컬에 저장하는 키와 값이 들어있는 작은 데이터 파일
- 만료시점
- 사용자 인증이 유효한 시간을 명시 가능, 브라우저가 종료되도 유효시간이 남아있으면 인증이 유지 됨
- 쿠키 구성 요소
- 이름 : 각각의 쿠키에 대한 식별자
- 값 : 쿠키의 이름과 관련된 값
- 유효시간 : 쿠키의 유지시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 도메인
- 용량제한
- 한 도메인 당 20개, 모든 도메인에 대해 300개 제한, 하나의 쿠키는 4KB
- 클라이언트도 모르게 접속되는 사이트에 의해서 설정 될 수 있기 때문에 쿠키로 인한 문제가 발생하는 것을 막고자 제한을 걸어놓았다.
- 하나의 도메인에서 쿠키가 20개를 초과하면 가장 적게 사용된 쿠키부터 삭제
- 쿠키 동작 방식
- 클라이언트가 페이지 요청
- 서버에서 쿠키 생성
- HTTP 헤더에 쿠키를 포함시켜 응답
- 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라언트에서 보관하고 있음
- 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보냄
- 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트 하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답
- 예시
- 방문 사이트에서 로그인 시, 아이디와 비밀번호를 저장하시겠습니까?
- 쇼핑몰의 장바구니 (비 로그인시 장바구니에 담았던 품목을 로그인 시 그대로 유지하기 위해서 사용)
- 쿠키란?
- 세션
- 세션이란?
- 일정 시간 동안 같은 사용자, 브라우저로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술
- 쿠키를 기반, 차이점은 사용자 정보를 브라우저에 저장하지 않고 서버에서 관리
- 만료시점
- 서버에서는 클라이언트를 구분하기 위해서 세션 ID 를 부여하여 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태 유지
- 세션의 장점
- 클라이언트의 정보를 서버에 저장하기 때문에 쿠키보다 보안에 우수
- 세션의 단점
- 쿠키보다 보안 면에서 우수하지만 사용자가 많아질경우 서버 메모리를 많이 차지하게 됨 -> 성능 저하의 요인
- 세션의 동작 방식
- 클라이언트가 서버에 접속시 세션 ID 를 발급
- 클라이언트는 세션 ID 에 대해 쿠키를 사용하여 저장
- 클라이언트가 서버에 다시 접속 시 이 쿠키를 이용해서 세션 ID 값을 서버에 전달
- 로그인과 같이 보안 상 중요한 작업
- 세션이란?
728x90
'Trouble shooting > backend' 카테고리의 다른 글
RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods (0) | 2021.11.16 |
---|---|
Import "wtforms.fields.html5" could not be resolved (0) | 2021.11.16 |