Session의 개념에 대해 알기 전, HTTP와 Cookie의 개념에 대해서 먼저 알아야 할 필요가 있다.
# HTTP란?
- HyperText Transfer Protocol의 약자.
- 웹페이지를 사용하는 사용자와 서버와의 의사소통 방식
- request ~ response 방식으로 정보를 주고받음
- 주로 html 형태로 제공되며, 이 안에는 DB 정보 및 js, css, img 등 정적 리소스들이 포함되어 있음.
# HTTP 특징
- 비연결성 (connectionless) : HTTP 연결은 한번 이루어지면 그 이후 연결을 끊는다.
- 무상태성 (stateless) : 서버가 사용자의 상태를 알 수 없기에, 이전에 어떤 요청을 했는지 알 수 없다.
즉 위 2개의 특징으로 인해 웹 페이지는 본래 사용자의 정보를 담는 것이 불가능하다. (ex> 로그인이 유지가 안된다)
하지만 실제 운영되는 웹 페이지들은 이러한 형태를 보이지 않는다.
이는 Session과 Cookie로 인해 가능한 것이다.
# Session vs Cookie
우선 Session은 서버에, Cookie는 브라우저에 존재한다. 그렇기에 상대적으로 Cookie는 Session에 비해 보안에 취약하다. 하지만 두개 모두 사용하여야 원활한 웹 사이트 운영이 가능해진다.
가령 Cookie가 없다는 가정 하에 HTTP 통신으로 인해 client와 server의 연결이 유지되지 않기 때문에 어떠한 요청이 누구의 것인가를 판단하는 것이 어렵다. 하지만 Cookie를 브라우저에 한번 저장한다면, 해당 Cookie를 매 요청마다 서버로 돌려보내면서 요청자 식별이 가능해진다.
============================================================================================
# 테스트 환경 : WebLogic의 M2, M3 서버는 클러스터로 묶여있으며, WebLogic ~ OHS 연동까지 완료한 상태이다.
또한 max-in-memory-sessions는 60초로 설정한 상태이다.
============================================================================================
client가 동일 domain (여기서는 http://192.168.56.242:8080/OFM)에 있으면 어느 페이지를 호출하더라도 Cookie 값은 동일하다.
동일한 cookie 값을 가져온다는 것을 확인했다. (동일 브라우저라는 가정 하에)
그렇다면 Cookie와 Session은 서로 어떻게 상호작용할까?
서버에서 사용자 DB 등을 조회해서 인증 정보를 검증하고 서버에 Session을 생성한다. 하지만 이 정보만 가지고는 정확하게 사용자가 누구인지 알 수 없다. (ex> 사용자가 새로운 페이지를 방문할 때 마다 다시 로그인함)
그렇기에 Cookie와 Session을 혼용해서 사용하는 방법이 있는데, Session에서 Session ID라는 식별자를 생성하고, 이를 Cookie로 브라우저에 응답해준다면 매번 브라우저 요청 시 Session ID가 담긴 Cookie를 서버로 돌려보내며, 이에 해당되는 Session이 존재하는지 확인해주면 된다.
'WAS & WEB' 카테고리의 다른 글
mod_wl_ohs.conf 테스트 (0) | 2022.07.21 |
---|---|
mpm test (0) | 2022.07.12 |
csp (0) | 2022.06.17 |
GCC (0) | 2022.06.14 |
Unicast vs Multicast (0) | 2022.05.18 |