asp.net의 쿠키없는 세션
-
28-10-2019 - |
문제
최근에 쿠키가없는 세션에 대해 파헤 치고 있었는데, 세션이 서버에서 생성 될 때마다 ID가 쿠키, 클라이언트 컴퓨터에 저장된다는 기사를 접했습니다.세션 ID가 쿠키에 있고 쿠키가 클라이언트 컴퓨터에 로컬로 저장되는 경우 세션이 서버에 저장되어 있다고 어떻게 말할 수 있습니까?그렇다면 쿠키리스 세션의 개념은 무엇입니까? 누구든지 저를 설명 할 수 있습니까?
해결책
세션 상태는 (거의 항상) 서버에 저장되며 세션 토큰 인 난수로 식별됩니다.
해당 토큰은 클라이언트가 저장하고 HTTP 요청과 함께 서버로 보내야합니다 (서버가 이전에 그를 본 적이 있다는 것을 기억하고 세션을 요청에 연결할 수 있도록). <인용구>
세션이 서버에 저장되어 있다고 말할 수 있습니까? 맞습니까? 세션이 서버에 저장되어 있습니까?
세션 토큰 만 클라이언트에 저장되며 임의의 숫자이기 때문에 그 자체로 유용한 정보를 포함하지 않습니다.서버에 저장된 데이터와 함께 가치가있을뿐입니다. <인용구>
그렇다면 쿠키없는 세션의 개념은 무엇입니까?
토큰을 저장하는 가장 쉬운 방법은 쿠키를 사용하는 것입니다.그것이 쿠키가 발명 된 이유입니다.대안은 숨겨진 양식 변수를 사용하거나 URL의 일부로 쿠키를 앞뒤로 전달하는 것입니다.
다른 팁
세션은 서버에 저장됩니다.ID와 연결된 각 세션 (ASP.NET에서 가장 간단한 세션 상태 공급자는 ID를 키로 사용하는 메모리의 사전입니다).이 ID는 클라이언트의 쿠키에도 저장되지만 쿠키가없는 세션의 경우 URL에 ID가 저장됩니다 ( 예 )..
세션 ID를 테이블의 키로 생각하고 세션 상태를 값으로 생각하십시오.값이 아닌 키만 클라이언트에게 전송됩니다.
ASP.NET의 경우 세션 상태 자체는 키 / 값 쌍을 포함하는 사전입니다.
표준 SQL Server 세션 공급자를 사용하는 경우 위에서 언급 한 테이블을 ASPStateTempSessions
라고합니다.SessionId
는 PK이고 직렬화 된 Dictionary
는 SessionItemShort
또는 SessionItemLong
열에 저장됩니다.