대표적으로 JWT
가 있다.
여기서 Stateless 와 Stateful 이 정확히 먼지 짚고 넘어가자!
1. Stateless 이란?
- Stateless는 클라이언트와 서버와의 관계에서 서버측에서 클라이언트에 대한 상태를 보존하지 않는 것으로, 별도의 세션 정보를 기록하지 않는 방식을 의미한다.
- 즉, 클라이언트와 서버간의 연결이 지속하여 연결된 상태가 아니므로 서버에서는 클라이언트의 현재 상태를 알 수 없다.
2. Stateful 이란?
- Stateless와는 반대로 클라이언트와 서버가 지속적으로 서로에게 상태를 체크하여 현재 상태를 지속 반영한다.
- 이렇게 연결된 두 관계는 어느 한쪽이 일방적으로 끊지 않는 이상 지속적인 관계를 유지하게 된다.
대표적으로 TCP 통신이다.- 이러한 특징으로 Stateful의 경우 세션정보를 서버에 저장하므로 서버 성능에 영향을 끼치고 서버 확장에 어려움이 존재한다.
인증 타입 | 설명 |
---|---|
Basic | 사용자 아이디와 암호를 Base64로 인코딩한 값을 토근으로 사용한다.(RFC 7617) |
Bearer | JWT 혹은 OAuth에 대한 토큰을 사용한다. (RFC 6750) |
Digest | 서버에서 난수 데이터 문자열을 클라이언트에 보낸다. 클라이언트는 사용자 정보와 nonce를 포함하는 해시값을 사용하여 응답한다 (RFC 7616) |
HOBA | 전자 서명 기반 인증 (RFC 7486) |
Mutual | 암호를 이용한 클라이언트-서버 상호 인증 (draft-ietf-httpauth-mutual) |
AWS4-HMAC-SHA256 | AWS 전자 서명 기반 인증 |