인증
로그인과 같이 해당 유저가 맞는지에 대한 확인
인가
회원/ 비회원 같이 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인(관리자 권한)
웹 애플리케이션 -> 웹 서버
통신을 하고 있다(HTTP)
비연결성, 무상태로 이루어져 있다
비연결성
서버와 클라이언트가 연결이 되어있지 않다.
리소스를 절약하기 위해
서버는 하나에 대한 요청을 받고 응답을 해주면 끊어버린다
무상태
서버가 클라이언트의 정보를 저장하지 않는다.
서버는 클라이언트가 언제 뭘 요청을 했는지 알 수 없다.
쿠키-세션 방식(인증)
토큰 저장소(쿠키)
인증 정보(세션)
특정유저가 로그인을 했다는 정보를 가지고 있다.
1. 사용자가 로그인을 하게 되면 데이터베이스에서 해당 사용자가 있는지 확인
2. 사용자가 있으면 세션 ID를 생성해서 저장소에 저장을 한다.
3. 저장된 세션ID를 서버가 클라이언트(사용자)에 응답을 한다.
4. 사용자가 다시 요청을 하게 되면 세션 ID를 쿠키로 서버에 요청하게 된다.
5. 이를 서버가 받아서 쿠키로 전달받아온 세션 ID를 저장소에서 검증을 한다.
6. 검증이 완료되면 요청한 것을 응답을 한다.
JWT(인증)
json web token(json형식의 웹에서 사용하는 토큰)
로그인에 필요한 정보를 암호화시켜논다.
1. 사용자가 로그인을 하게 되면 데이터베이스에서 해당 사용자가 있는지 확인
2. 사용자가 있으면 (로직에 의해) Access Token(JWT로 암호화)를 발급
3. 발급받은 토큰을 서버가 클라이언트(사용자)에 응답을 한다.
4. 사용자가 요청을 하면 JWT(암호화된 토큰)와 함께 요청이 서버에 들어온다.
5. 받은 토큰을 (로직에 의해) 검증을 하고 완료되면 응답을 보내준다.
'Java' 카테고리의 다른 글
MVC, 3 Layer (0) | 2024.08.21 |
---|---|
Spring 쿠키와 세션, JWT (0) | 2024.08.19 |
알고리즘 코딩테스트( 시간 복잡도 ~ 구간 합 ) (0) | 2024.08.16 |
Java 람다 표현식 (0) | 2024.07.31 |
Java 제네릭 (0) | 2024.07.31 |