2009-03-10 6 views
1

웹 응용 프로그램의 세션 시간 초과는 일반적으로 유휴 시간 (즉, 사용자가 응용 프로그램을 사용하지 않는 시간)을 나타냅니다.웹 응용 프로그램의 세션 시간 초과

5 분마다 요청을 게시하는 자동화 된 스크립트가있는 경우 - 사용자 세션이 끝나지 않을까요? 그렇다면 장기적으로 성능에 영향을 미치는 응용 프로그램을 많이로드하는 방식이 아닌가?

답변

0

음 ... "It Depends"당신이 스스로에게 묻어야 할 첫 번째 질문은 세션이 필요한지 여부입니다.

자동화 된 프로세스가 있다면 실제로 세션을 사용할 필요가 없다고 생각합니다.

그런 경우 사용을 중지하거나 걱정할 필요가 없습니다.

4

AJAX 요청을 통해 서버에 자동 호출을 실행하면 세션을 활성 상태로 유지합니다. 일반적으로 그것은 요점입니다. 이것의 흥미로운 부작용은 요청이 예측 가능하고 규칙적으로 발생하는 경우이를 "핑 (ping)"으로 사용하여 사용자의 브라우저가 아직 열려 있는지 확인할 수 있다는 것입니다. 하나 또는 두 개의 ping을 놓친 경우 이전에 세션을 닫고 실제로 세션 시간 제한을 설정하는 것보다 더 빨리 리소스를 확보 할 수 있습니다.

0

세션 테이블이 조금 더 클 것 같지만 다른 한편으로는 세션을 해체하고 재생성하지 않을 것입니다. 어떻게 응용 프로그램을 "과중하게로드 할"것인지 모르겠습니다. 응용 프로그램 자체와 세션 상태를 유지하는 데 사용되는 메모리의 양에 따라 달라집니다.

1

예, 예.

웹용 응용 프로그램을 작성하려는 경우 실제로 서버 측 세션을 사용하지 않고이를 구현하는 방법을 찾고 싶습니다. 일반적으로 쿠키를 사용하여 동일한 기능을 구현할 수있는 방법을 찾을 수 있습니다. 세션 데이터는 클라이언트 측에 있으므로 영구적으로 활동할 경우 신경을 쓰게됩니다.

0

브라우저를 열어두면 끝까지 사용할 수 있습니다. 오랜 시간 동안 세션을 유지해야하는 경우 메모리가 아닌 DB를 통해 세션을 추적 할 수 있습니다.

또한 무제한 열린 세션에 대해 걱정할 경우 세션이 열린 시간과 확장 된 유휴 시간이있는 경우 시간 제한을 구현할 수 있습니다.

1

나는 세션 데이터에 크게 의존하는 응용 프로그램과 비슷한 것을 만들었습니다.

내가 한 것은 상대적으로 낮은 시간 (예 : 10 분)으로 IIS 시간 제한을 설정 한 다음 5 분마다 빈 페이지를 핑하는 시간 초과 AJAX 호출을 설정 한 것입니다.

이 오버 헤드는 실제로 매우 낮습니다. 수행중인 모든 작업이 빈 페이지를 요청하고 사용자가 브라우저를 닫으면 세션이 10 분 내에 종료됩니다.

1

가능한 한 작게 세션을 유지하려고합니다. 즉, 모든 사람들이 그렇게하기 시작하면 당연히 세션이있는 상태에서 응용 프로그램을로드합니다. 사용자가 그렇게해야한다고 생각한다면 응용 프로그램에 중요한 기능이 누락되어 있거나 뭔가를 강요당하는 이유를 고려하십시오.

이제는 아무리 많은 사용자가 동시에 활성화 될 것으로 예상된다면 단일 서버가 그렇게하지 않을 것이므로 세션을 처리하지 않게 될 것입니다.세션이 Sql Server에 있으면 그냥 저장된 데이터이므로이 경우 우리는 메모리 사용에 관해 이야기하지 않을 것입니다.