문제

이후 HTTP 은 무 프로토콜,클라이언트가 다수의 요청을 서버에 어떻게 서버를 고유하게 식별 특정 클라이언트의 요청을 통해 시간의 기간 말 t1,t2,t3..

내가 열람 웹 와 같은 용어를 본 세션 id,URL 재작성 및 쿠키를 삭제합니다.그러면 그것은 좋은 것입니다 누군가가 그것을 설명에서 더 나은 방법입니다.구체적으로 어떤 부분에 HTTP 요청과 응답에 사용될 것입 session tracking?

도움이 되었습니까?

해결책

언급했듯이 HTTP 세션 추적을 구현하는 일반적인 방법에는 URL 재 작성 및 쿠키가 포함됩니다. 세션 추적은 기본적으로 서버에 대한 여러 요청에 걸쳐 세션 ID를 유지해야합니다. 이는 주어진 클라이언트가 서버에 요청할 때마다 동일한 세션 ID를 전달 함을 의미합니다. 서버는이 ID를 사용하여 유지 관리하는 세션 정보를 조회 할 수 있습니다.

쿠키를 사용할 때 서버는 클라이언트에게 다음을 설정하여 쿠키를 저장하도록 요청합니다. Set-Cookie HTTP 응답 헤더. 이 쿠키에는 해당 클라이언트에 할당 된 고유 한 세션 ID가 포함되어 있습니다.이 예에서는 문자열 'abad1d':

    Set-Cookie: JSESSIONID=ABAD1D;path=/

그런 다음 쿠키는 Cookie HTTP 요청 헤더 각 요청에 따라 서버에 서버에 현재 고객에게 할당 된 세션 ID가 각 요청에 표시됩니다.

    Cookie: JSESSIONID=ABAD1D

URL 재 작성을 사용하면이 동일한 세션 ID가 대신 URL 어딘가에 전송됩니다. 다시, 서버는 특정 클라이언트의 세션을 조회 할 수 있도록 URL에서 세션 ID를 추출합니다.

    http://my.app.com/index.jsp;JSESSIONID=ABAD1D

그러나 서버는 또한 클라이언트로 다시 전송 된 웹 페이지의 모든 URL이 해당 특정 클라이언트 세션 ID를 포함하도록 다시 작성해야합니다. 세션 ID가 URL에서 인코딩 되므로이 세션 추적 방법은 브라우저에 투명합니다. 종종 서버는 클라이언트에 세션 쿠키를 설정할 수 없다는 것을 알게되면 URL 재 작성에 의존합니다. 이는 클라이언트가 쿠키를 지원/허용하지 않음을 암시합니다.

세션은 만료 될 수 있습니다. 즉, 서버가 일정 시간 동안 주어진 세션 ID를 '표시'하지 않으면 리소스를 보존하기 위해 세션 데이터를 제거 할 수 있습니다.

다른 팁

특히 HTTP 요청 및 응답의 어느 부분이 세션 추적에 사용됩니까?

HTTP 응답에서 서버는 쿠키를 설정할 수 있습니다. Set-Cookie 헤더와 함께합니다. 예를 들어:

Set-Cookie: session=12345; path=/

그런 다음 클라이언트는 쿠키와 함께 설정된 속성과 일치하는 모든 쿠키의 값을 반환합니다. 쿠키 (위와 같이) 및 도메인을 포함 할 수 있으며 아직 만료되지 않은 도메인을 포함 할 수 있습니다.

쿠키는 HTTP 헤더의 일부로 서버로 다시 전송됩니다. 예를 들어:

Cookie: session=12345

원래 속성 정보는 쿠키와 함께 다시 전송되지 않습니다.

고유 한 쿠키를 사용하면 서버가 특정 브라우저 인스턴스와 고유 한 키를 연결할 수 있습니다. 그런 다음 서버는 해당 키를 해시 테이블의 색인 또는 고유 사용자 당 상태 정보를 보유하는 데이터베이스 테이블로 사용할 수 있습니다.

세션 추적은 서버 측면입니다.

웹 서버는 브라우저로 반환되는 일부 세션 식별자를 발행합니다. 브라우저는 각 요청과 함께이 세션 식별자를 제출합니다.

이것은 아마도 사용자를 위해 쿠키를 투명하게 사용하여 수행 될 것입니다.

세션을 처리하는 대부분의 경우 전송하여 처리 쿠키 클라이언트.는 쿠키가 전송됩니 다시 서버에 모든 요청에서는 특정 클라이언트입니다.

session id 될 것입과 관련된 일부 자원에서 서버의 측면(파일,ram space)그래서 서버로 읽 session id 에서 쿠키를 찾을 수 있습이 리소스를 다음을 알고 있는 클라이언트이었다.

충분한 세부 사항을 찾으십시오 여기

HTTP 세션 권장 접근법입니다. 세션은 대화 기간 동안 동일한 브라우저에서 유래 한 요청을 식별합니다. 모든 서블릿은 동일한 세션을 공유 할 수 있습니다. JSSESSIONID는 서버에서 생성되며 쿠키, URL 재 작성 (쿠키가 꺼진 경우) 또는 내장 SSL 메커니즘을 통해 클라이언트에게 전달할 수 있습니다. 세션에 저장된 물체의 크기를 최소화하기 위해주의를 기울여야하며 세션에 저장된 개체는 직렬화 할 수 있어야합니다. Java Servlet에서 세션은 다음과 같이 얻을 수 있습니다.

httpsession session = request.getSession (); // 현재 세션 또는 새 세션을 반환합니다

세션은 시간을 초과하거나 (web.xml에서 구성) 수동으로 무효화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top