2023. 11. 14. 19:13 Web
웹에서 세션이란 무엇이고 어떻게 활용되는가?
개인 공부용 포스팅입니다. 틀린 내용이 포함되어 있을 수 있으니 적당히 거르고 검증하시길 바랍니다.
틀린 내용은 댓글로 알려주시면 확인 후 반영하겠습니다.
세션이란 무엇인가?
- 웹에서 사용자의 정보를 저장하는 방법을 의미한다.
- 또 다른 의미로는 사용자가 브라우저를 닫기전까지 연결이 유지되는 상태를 의미하기도 한다.
Session은 server에 사용자의 중요한 정보를 저장하고 이에 대한 id값을 cookie에 전달하여
실제 사용자가 해당 id를 통해 사용자 정보에 접근할수 있게 해준다.
기존 Cookie를 활용하는 방법보다는 보안성 측면에서 훨씬 안전하다.
일반적인 Session 과정
- 사용자가 server 에 접속
- server는 해당 요청 속 JSESSIONID header가 존재하는지 여부를 확인
- 없다면 새로운 session id를 발급
- 발급된 session id를 response의 JSESSIONID Header에 저장
- 이후 요청에는 신규발급된 session id가 포함되어 요청됨
- 사용자의 로그인 요청
- 해당 유저의 로그인 정보 확인
- 확인 후 적합한 로그인 요청이었다면 해당 회원에 대한 session 정보 생성
- 각 요청에 대해서 server는 session id를 통해 해당 유저의 session data를 활용
-> 해당 유저의 요청에 대해서 authentication, authorization 등을 검증 시 활용.
참고 : 해당 JSESSIONID cookie는 session cookie이므로 브라우저와의 접속이 끊길 시 자동으로 사라진다.
참고2 : JSESSIONID cookie에 대해서 별도의 만료기간을 지정할 수 있다.
세션의 실제활용 예
- 로그인을 한 유저인지 판별
- 로그인 후 특정 권한에 대한 정보 식별
- 특정 page에 접근 시 권한 확인.
- 유저가 로그아웃 시 새로운 session id를 발급.
세션의 단점
- 기본적으로 cookie보다는 보안성이 좋지만 특정 유저의 session id를 탈취당하면 보안이슈가 발생할 수 있다.
'Web' 카테고리의 다른 글
인터넷의 작동 방식에 대해서 (0) | 2023.12.13 |
---|---|
REST API에 대해서. (0) | 2023.12.11 |
웹에서 쿠키란 무엇이고 어떻게 활용되는가? (0) | 2023.11.14 |
OAuth2에 대해서. (0) | 2023.11.14 |
[web] 알아두면 좋은 개념 정리 - 3 (0) | 2021.07.01 |