클라이언트의 인증 방식
보통 서버가 클라이언트의 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 방식이 있다.
1. Cookie 인증 방식
- 브라우저(클라이언트)가 서버에 요청을 보낸다.
- 서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의
Set-Cookie 에 담는다.
- 이후 클라이언트는 요청을 보낼 때마다, 매번 저장된 쿠키를 요청 헤더의
Cookie 에 담아 보낸다
- 서버는 쿠키에 담긴 정보를 바탕으로 클라이언트를 식별한다.
Cookie 인증 방식의 단점
- 가장 큰 단점은 쿠키의 값을 그대로 보내기에
보안에 취약
- 용량 제한이
4KB 이다. 많은 정보를 담을 수 없다.
- 웹 브라우저 또는 클라이언트의 디바이스에 따라 쿠키에 대한 지원 형태가 다르기 때문에
브라우저간 공유가 불가능 하고 처리가 상이함.
2. Session 인증 방식
- 유저가 웹사이트에 로그인하면 세션이
서버 메모리( 혹은 데이터 베이스) 상에 저장된다.
- 서버에서 브라우저에
쿠키에 Session Id 를 저장한다.
- 쿠키에 정보가 담겨있기 때문에 브라우저는 해당 사이트에 대한 모든 Request 에 Session Id 를 쿠키에 담아 전송한다.
- 서버는 클라이언트가 보낸 Session Id 를 비교하여 인증을 수행한다.
Session 인증 방식의 단점
- Cookie 인증방식과 마찬가지로 쿠키를 사용하여 Session 에 대한 정보를 보내기 때문에 클라이언트의 디바이스 지원방식에 따라 구현을 따로 해야한다. (모바일 지원 하지 않음)
- 서버에 세션저장소를 사용하므로 요청이 많아지면 서버에 부하가 심해진다.
3. Token 인증 방식