2024. 8. 26. 14:22ㆍIT 용어
# cookie와 session의 개념 및 필요성
HTTP 통신의 특징인 connectionless, stateless 프로토콜의 약점을 보완하기 위해 사용한다.
- connectionless 프로토콜
Client가 서버에 요청을 했을 때 해당 request에 맞는 응답을 보낸 후 연결을 끊는 처리 방식
- stateless 프로토콜
통신 connection을 끊는 순간에 Client와 Server의 통신이 끊기며 상태 정보를 유지하지 않음
위의 2개의 프로토콜을 통해 HTTP 통신이 이뤄지게 되는데 정보가 계속 유지가 되어야 하고 연결이 끊기지 않고 계속 유지가 되기 위해서는 현재 페이지를 사용하고 있는 Client가 누구인지 지속적인 인증이 필요하다.
따라서 cookie와 session을 통해 정보와 연결 유지 및 인증 문제를 해결해 주게 된다.
# JSESSIONID
session 정보를 가진 session ID는 WAS가 관리하게 되는데 따로 지정을 하지 않게 되면 기본 session ID는 JSESSIONID라 명명되게 된다.
이러한 session ID는 브라우저 단위로 정보가 저장되고 브라우저가 종료되는 동시에 제거되게 된다.
로그인 여부, 비밀번호 등과 같은 사용자 관련 정보를 session ID에 담아 해당 정보를 최초 접속을 제외하고 DB에서 다시 조회할 필요가 없어 서비스에 용이하다.
WAS의 종류와 상관없이 default session ID의 이름은 JESSIONID이다.
# session ID 구성
session ID를 담고 있는 session cookie의 포맷은 아래와 같다.
sessionid!primary_server_id!secondary_server_id
sessionid : 임의로 생성되는 HTTP session ID 값
primary_server_id : session이 메인으로 생성되는 JVM의 JVMID 값
secondary_server_id : session이 백업으로 생성되는 JVM의 JVMID 값으로 존재하지 않으면 NONE로 설정됨
페이지의 session이 유지되기 위해서는 sessionid 값이 반드시 동일하게 유지되어야 한다.
# session 유지 테스트
WebLogic 12.2.1.4 / OHS 12.2.1.4 기준으로 테스트를 진행
WebLogic에 배포되어 있는 Application의 weblogic.xml과 OHS의 httpd.cond 및 mod_wl_ohs.conf에 cookie 값 설정을 하지 않은 default 설정으로 테스트 진행
① WAS1번의 testM1 Server가 현재 main session Server
② WAS1번 장비의 testM1 Server Shutdown 후 페이지 재 호출
main session server가 testM2로 변경되었으며 session값도 유지되고 있는 것 확인 가능
'IT 용어' 카테고리의 다른 글
Failover와 Failback (0) | 2024.11.14 |
---|