SSLSessionContext — SSL 세션의 묶음(컨텍스트)
SSLSessionContext — SSL 세션의 묶음(컨텍스트)
SSLSessionContext는 하나의 개체와 연관된 SSLSession들의 집합을 나타내요. 예를 들어 많은 세션에 동시에 참여하는 서버나 클라이언트와 연관될 수 있어요. 모든 환경에 세션 컨텍스트가 존재하는 것은 아니에요. 예를 들어 무상태(stateless) 세션 재개 방식에서는 세션 컨텍스트가 없을 수 있어요. 세션 컨텍스트가 모든 세션을 담고 있는 것도 아니에요. 무상태 세션은 세션 컨텍스트에 저장되지 않아요.
본문
세션이 저장되는 방식에 영향을 주는 SSLSessionContext 파라미터가 몇 가지 있어요.
- 세션이 지정된 시간이 지나면 만료되도록 설정할 수 있어요.
- 컨텍스트에 저장할 수 있는 세션 수를 제한할 수 있어요.
- 세션 id를 기준으로 세션을 조회할 수 있고,
SSLSessionContext안의 모든 세션 id를 나열할 수 있어요.
메서드
Enumeration<byte[]> getIds()— 이SSLSessionContext아래에 묶인 모든 알려진 세션 id의Enumeration을 반환해요.SSLSession getSession(byte[] sessionId)— 지정된 세션 id에 바인딩된SSLSession을 반환해요.int getSessionCacheSize()— 이SSLSessionContext아래에 묶인SSLSession객체를 저장하는 데 사용하는 캐시의 크기를 반환해요.int getSessionTimeout()— 이SSLSessionContext아래에 묶인SSLSession객체의 타임아웃 제한을 반환해요.void setSessionCacheSize(int size)—SSLSession객체를 저장하는 캐시의 크기를 설정해요.void setSessionTimeout(int seconds)— 세션의 타임아웃(초 단위)을 설정해요.
세션 컨텍스트는 한마디로 "세션을 저장하고 관리하는 창고"예요. 언제까지 보관할지(타임아웃), 몇 개까지 보관할지(캐시 크기)를 설정하고, 세션 id로 원하는 세션을 찾아 재개할 수 있게 해줘요. 성능 튜닝에서 세션 캐시를 적절히 관리하는 일이 중요해요.