SSLSessionContext — SSL 세션의 묶음(컨텍스트)

SSLSessionContext — SSL 세션의 묶음(컨텍스트)

SSLSessionContext는 하나의 개체와 연관된 SSLSession들의 집합을 나타내요. 예를 들어 많은 세션에 동시에 참여하는 서버나 클라이언트와 연관될 수 있어요. 모든 환경에 세션 컨텍스트가 존재하는 것은 아니에요. 예를 들어 무상태(stateless) 세션 재개 방식에서는 세션 컨텍스트가 없을 수 있어요. 세션 컨텍스트가 모든 세션을 담고 있는 것도 아니에요. 무상태 세션은 세션 컨텍스트에 저장되지 않아요.

출처: Java API Reference

본문

세션이 저장되는 방식에 영향을 주는 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로 원하는 세션을 찾아 재개할 수 있게 해줘요. 성능 튜닝에서 세션 캐시를 적절히 관리하는 일이 중요해요.

더 알아보기 (Learn more)