Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 신입개발자 프로젝트
- 우아한테크코스 Google Java Style Guid
- 메모리에서 배열
- jwt원리
- jwt토큰관리
- session장점
- 세션장점
- session이란?
- 토큰구조
- 자바 코드 가이드
- 포워드프록시
- 백엔드 서버
- 프록시서버
- 신입개발자
- session이뭔가요?
- jwt토큰원리
- 프로그래밍 배열
- session이 뭔가요?
- jwt란?
- session단점
- 구글 자바 스타일
- ReverseProxy
- Google Java Style Guide
- 세션장단점
- GPT프로젝트
- Google Java Code Style Guide
- jwt토큰구조
- 세션단점
- 배열과 메모리
- 구글 자바 코드 스타일
Archives
- Today
- Total
dev_dbdb1114
세션은 무엇인가? 본문
세션이란?
- 클라이언트 최초요청 : 웹 브라우저를 켜서, naver와 같은 사이트에 요청을 한다.
- 서버측 최초 응답1 : 서버에서는 해당 주소에 맞는 메소드를 찾는다.
- 서버측 최초 응답2 : 그 메소드에서 요청에 맞는 html파일을 리턴해준다. ( http header를 붙인다. )
- 서버측 최초 응답3 : header에 쿠키를 만들어서 sessionID를 담아서 보내준다. 서버측에서는 해당 sessionID를 저장해두고, 로그인 유저의 경우, 해당 유저의 정보를 sessionID와 같이 저장해둔다.
- 클라이언트 두 번째 요청 : 웹브라우저에서는 쿠키를 받아서 저장한다. ( session ID )
- 클라이언트 두 번째 요청 : 이후에 발생되는 웹브라우저의 요청 부터는 header에 sessionID를 붙여서 보내준다.
- 서버측 두번째 응답 : header에 같이 온 sessionID를 가지고 있는지 확인한다.
세션이 사라지는 경우
- 서버측에서 저장해둔 세션ID를 삭제하는 경우
- 클라이언트가 브라우저를 모두 종료시켰을 경우
- 특정 시간(30분)이 지나면 세션값이 서버측에서 사라지는 경우
세션의 이용
- 로그인시 많이 사용.
- 보안적으로 많이 이용.
세션의 단점
- 서버측에서 로드밸런싱을 사용할 경우 서버마다 세션관리를 따로 하는 상황이라면, 로그인을 다시 해야하는 경우가 발생.
-1 sticky 서버라는 것을 구현하여, 처음에 로그인 할때 sessionID를 발급해준 서버로만 요청을 보내게끔 하는 방법이 있음.
-2 session관리를 전부 복제하여 통일적으로 관리를 하는 방법도 있음.
-3 애초에 DB에 세션값을 저장해두고 쓰는 방법도 있음. 하지만 이런 방식을 사용할 경우 메모리를 이용하는 것이기 때문에 속도가 느려질 가능성이 높음 ( 입출력 / IO 가 일어나기 때문 )
-4 메모리 서버를 사용하여 서로다른 서버들이 해당 메모리 서버에서 세션 ID를 관리하게끔 할 수 있음 ( ex: Redis )
'프로그래밍 > server' 카테고리의 다른 글
| MSA란 무엇인가? (0) | 2023.09.13 |
|---|---|
| OAuth2.0, 인증과 인가 (0) | 2023.09.12 |
| 이미지 호스팅 서비스 Cloudinary with React (0) | 2023.09.04 |
| JWT토큰에 대해서 (0) | 2023.07.19 |
| ProxyServer에 대해서 (0) | 2023.07.05 |
Comments