728x90
반응형
Session과 JWT는 웹 애플리케이션에서 사용자 인증 방법에 차이가 있습니다.
Session은 서버에서 사용자를 인증할 때 사용하는 방법입니다. 서버는 사용자가 로그인 할 때 사용자 정보를 기반으로 세션을 생성합니다. 이후 세션 ID를 쿠키나 HTTP 헤더에 저장하여 사용자를 식별합니다. 이때 세션 ID는 서버에 저장되며, 서버는 이를 사용하여 사용자를 식별하고 권한을 제어할 수 있습니다.
JWT(JSON Web Token)는 클라이언트에서 사용자를 인증할 때 사용하는 방법입니다. JWT는 서버에서 사용자 정보를 기반으로 생성한 토큰입니다. 이 토큰은 서버에 저장되지 않고 클라이언트가 이를 저장하여 사용합니다. 클라이언트는 이 토큰을 서버에 요청할 때마다 서버에 전달하여 인증을 합니다
장단점
Session의 장점
- 세션 ID를 저장할 수 있는 저장소가 다양하므로, 쉽게 세션 관리를 할 수 있습니다.
- 세션 ID를 저장할 수 있는 저장소가 다양하므로, 쉽게 세션 유지 시간을 설정할 수 있습니다.
- 서버에서 사용자 정보를 관리할 수 있어, 다양한 권한 제어를 할 수 있습니다.
Session의 단점
- 세션 ID를 저장할 수 있는 저장소를 공유하면, 세션 하이재킹을 받을 수 있습니다.
- 서버 자원을 많이 사용하므로, 서버 부하가 증가할 수 있습니다.
JWT의 장점
- 서버 자원 사용이 적어, 서버 부하를 줄일 수 있습니다.
- 서버에 저장되지 않고 클라이언트에서 저장하므로, 세션 하이재킹을 받을 확률이 낮습니다.
- 서버에서 사용자 정보를 관리할 필요가 없어, 서버 구성
JWT의 단점
- 토큰이 클라이언트에 저장되므로, 클라이언트 기기가 도난당하면 토큰이 유출될 수 있습니다.
- 토큰을 검증할 때마다 서버와 통신을 해야하므로, 서버 응답 속도가 느려질 수 있습니다.
- 토큰이 유효기간이 있어, 일정 시간이 지나면 재발급이 필요합니다.
이와같이 Session과 JWT는 각각 인증 방법에 따라 장단점이 있습니다.
각각의 장단점이 있기 때문에 필요한 방법에 맞게 사용하는 것이 좋다고 생각합니다.
728x90
반응형
'Programming' 카테고리의 다른 글
c++에서 hello world 찍는 방법 (1) | 2023.12.30 |
---|---|
프로젝트 관리 및 협업 도구 비교 (0) | 2023.11.02 |
DB 더미 데이터 만드는 방법 (2) | 2023.03.02 |
Docker 명령어 옵션 정리 (0) | 2023.01.15 |
클린 코드 자바스크립트 번역판 (0) | 2022.06.25 |