2012-02-01 3 views
4

서블릿에서는 세션 추적 기능을 사용할 수 있습니다. 그래서 저는 세션이 클라이언트 측 또는 서버 측에 유지되도록 요청하고 싶습니다.서블릿의 세션은 어디에 유지 관리됩니까?

고객 측에 있다면 어디서?
클라이언트 측 HTTPSession에서 세션을 만들 수 있습니까?

나는 서버 측뿐만 아니라 클라이언트 측의 세션도 유지할 수 있다는 기사를 발견했습니다.

답변

4

세션을 유지 관리 할 서버입니다. 세션 추적을 허용하는 것은 서버의 책임입니다. 클라이언트는 정보를 명시 적으로 전송하는 것에 대해 걱정할 필요가 없습니다. 클라이언트는 모든 요청과 함께 클라이언트에 저장된 쿠키를 보낼 수 있으므로 서버는 세션 추적을 위해 쿠키를 사용할 수 있습니다.

참고 : 쿠키은 세션 추적을 구현하는 방법 중 하나에 불과합니다. 또한 최선의 방법입니다.

그래서 서버는 쿠키를 세션 추적을 처리하는 방법 중 하나로 사용합니다.

또한 다른 방법으로 수행 할 수 있습니다

URL 재 작성 - 모든 URL의/링크에 세션 ID를 추가해야하는 응용 프로그램/서버. 그것들이 클라이언트로부터 호출 될 때, 세션은 URL과 함께 서버에 온다.

숨겨진 양식 필드 - 양식에 필드 값으로 세션 ID가있는 숨겨진 입력 유형이 포함될 수 있습니다. 양식이 게시되면 세션 ID가 양식 데이터와 함께 제공됩니다.

+0

고마워. 그럼 우리가 클라이언트 측에서 쿠키를 지우면 세션은 서버 측에서 유지 관리되는 파괴가된다. 나는 맞습니까? – user460920

+0

예, 일부 시간 초과 값 후에는 삭제됩니다. 클라이언트 측에서 쿠키가 삭제되므로 클라이언트는 더 이상 쿠키를 서버로 보낼 수 없으므로 서버에서 생성 된 세션에 더 이상 액세스 할 수 없습니다. –

+0

비슷한 http://stackoverflow.com/questions/9032330/whowebserver-or-developer-takes-care-of-maintaining-one-http-session-per-brows/9032483#9032483 –

3

세션은 우리가 매핑하는 방법을 서버의 세션


을 가진 request를 매핑하는 쿠키 (또는 JSESSIONID 또는 숨겨진 양식 필드)가 클라이언트 측에서 서버 측에있는

당신이 제출 처음으로 요청 (처음부터), 서버는 브라우저에 보낸 응답을 제공하는 쿠키를 제공합니다. 요청을 다시 보낼 때 만료일, 내용 (일부 문자열) 및 도메인 이름이 포함 된 쿠키를 브라우저에서 허용합니다. 브라우저에 서버가 쿠키를 추가합니다. 서버가 요청을 수신 할 때 헤더에 해당 도메인에 대한 전자는 그래서 헤더에서 쿠키를보고 서버에 sessionId가와 콘텐츠를 매핑


참고

또한 (다른 응용 프로그램에서 세션을 가질 수 예 피어 - 피어 앱)

+0

감사합니다 .. 당신은 클라이언트 측의 쿠키를 통해 간략하게 설명 할 수 있습니다. 서버 쪽 세션이 발견됩니다 .. ?? – user460920

+0

미안하지만 미안하지만 ... 다른 응용 프로그램에서 세션을 가질 수도 있습니다 (예 : peer-peer app)? – user460920

+0

자세히 설명해드립니다. –