Notice
Recent Posts
Recent Comments
Link
투케이2K
67. (Network/네트워크) JWT 와 JSESSIONID 차이점 정리 - 액세스 인증 토큰 및 세션 아이디 본문
[구 분]
구분 : Network / 네트워크
제목 : JWT 와 JSESSIONID 차이점 정리 - 액세스 인증 토큰 및 세션 아이디
[설 명]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 환경 : Web / HTTP
- 기술 : JWT , JSESSIONID
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[JWT 간략 설명]
// --------------------------------------------------------------------------------------
1. JWT 란 클라이언트와 서버 사이에서 통신을 수행할 때 권한을 인증 하기 위해 사용하는 토큰입니다
>> 클라이언트-서버 간의 토큰 기반 방식
>> 서명을 통한 무결성 보호
2. JWT 는 Json Web Token 약어로 JSON 형태의 토큰 문자열을 사용합니다
3. JWT 구성 요소 :
>> 헤더 (header) : 알고리즘 , 토큰 사용에 대한 정보 (ex: 어떠한 토큰을 사용할 것 인지)
>> 페이로드 (payload) : 전달하려는 정보 (사용자 ID, 토큰 발급일, 토큰 만료일, 기타 데이터 등)
>> 서명 (signature) : 서버가 발급해준 비밀키로 헤더 , 페이로드 를 암호화시켜 토큰을 변조하기 어렵게 만듦
4. 클라이언트는 서버가 내려준 JWT 의 AccessToken 을 사용해 브라우저 이동 및 HTTP 요청 시 Header 헤더에 Authorization 값을 추가해 인증 요청을 합니다
>> Ex : Authorization : Bearer token ...
>> 서버에서는 요청 들어온 헤더 인증 토큰 값 파싱 후 (Bearer 제거) 유효성을 검증합니다
5. JWT 는 토큰 기반 인증 방식으로 서버 의존성이 적어 확장성 및 로드 밸런싱에 용이합니다
6. JWT 에서 AccessToken 만료 시 RefreshToken 을 사용해 다시 인증 토큰을 갱신 및 발급할 수 있습니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[JSESSIONID 간략 설명]
// --------------------------------------------------------------------------------------
1. JSESSIONID 는 서버 기반 세션 식별자로 각 고유한 클라이언트 세션 상태 관리에 사용 됩니다.
>> WAS 톰캣 컨테이너에서 세션을 유지하기 위해 발급 되는 키 (Key) 입니다
2. JSESSIONID 는 자바 웹 애플리케이션에서 세션 관리를 위한 용도로 사용 되며, 클라이언트의 상태를 유지하고 추적하기 할 수 있습니다
3. JSESSIONID 는 WAS 톰캣이 http 최초 요청이 들어온 클라이언트에게 발급해 줍니다
>> 클라이언트가 브라우저에 접근
>> 톰캣은 Response 헤더에 JSESSIONID 발급
>> Set-Cookie: JSESSIONID=4BB861E0BE1A9A7DE7DB926DF0772BDE
4. JSESSIONID 는 발급 되면 Cookie 에 저장 되며, 브라우저 이동 및 HTTP 요청 시 함께 전달 되어 인증 방식에 사용됩니다
>> JSESSIONID 는 동일한 도메인 내에서 유지가 되며, 서브 도메인이 다른 경우는 쿠키 값이 유지 되지 않습니다 (포트 번호는 달라도 무관)
5. JSESSIONID 는 서버에서 세션 관리를 수행하기 때문에 서버에 대한 의존성이 크며, 서버 성능이 세션 관리에 중요한 역할을 수행합니다
>> 클라이언트 동시 접속이 많은 경우 세션 관리에 문제가 발생할 수 있으며, 시스템 부하가 초래 될 수 있음
6. JSESSIONID 를 사용해 서버 환경은 HTTPS 사용을 권장합니다
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[JWT 개념 설명]
https://blog.naver.com/kkh0977/222934042760?trackingCode=blog_bloghome_searchlist
[JWT 토큰 갱선 처리 로직]
https://blog.naver.com/kkh0977/223604705723?trackingCode=blog_bloghome_searchlist
[NodeJs - JWT 토큰 생성 방법]
https://blog.naver.com/kkh0977/223312598939?trackingCode=blog_bloghome_searchlist
[NodeJs - JWT 토큰 유효성 검증]
https://blog.naver.com/kkh0977/223311615955?trackingCode=blog_bloghome_searchlist
[NodeJs- JWT 토큰 갱신 방법]
https://blog.naver.com/kkh0977/223312630682?trackingCode=blog_bloghome_searchlist
[JSESSIONID 개념 설명]
https://blog.naver.com/kkh0977/223249516775?trackingCode=blog_bloghome_searchlist
[Cookie 쿠키 속성 SameSite 샘사이트 옵션 및 정책 변경 사항 정리]
https://blog.naver.com/kkh0977/223595018272?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'Network' 카테고리의 다른 글
Comments