asp에서 COOKIES 변수와 SESSION 변수의 차이점
쿠키와 세션 1의 관계. 쿠키는 클라이언트의 브라우저로 전송되어 클라이언트의 하드 드라이브에 저장되는 텍스트 문자열 핸들입니다.
쿠키는 웹 사이트 세션 간에 데이터를 유지하는 데 사용될 수 있습니다. 요청 및 응답 객체 모두
쿠키 세트를 가지고 있습니다. Request.cookie 컬렉션은 HTTP 요청과 함께 클라이언트에서 웹 서버로 전송되는 일련의 쿠키입니다. 반대로 클라이언트에 쿠키를 보내려면 R
sponse.cookie
1을 사용할 수 있습니다. ExpiresAbsolute 속성
이 속성을 할당할 수 있습니다. 그 이후에는 쿠키를 더 이상 사용할 수 없는 날짜입니다. Ex
pires 속성에 만료 날짜를 할당하여 쿠키를 삭제할 수 있습니다. 예:
lt; Response.cookies("passtime").expiresAbsolute="1/1/99"gt;
2. 속성은 쿠키가 전송되는 고유 도메인을 정의합니다. 예: 쿠키는 Microsoft 직원에게만 전송됩니다.
다음 코드를 사용할 수 있습니다.
lt; Response.Cookies("domain").Domain="www.microsoft.com"gt;
3. ASP는 쿠키를 작성하고 클라이언트에 보내는 데 사용됩니다. . 구문은 다음과 같습니다:
Response.Cookie("Cookie name").[("Key name").Attribute]=Content
ASP 파일을 생성하려는 경우 쿠키, 그런 다음 오류를 방지하기 위해 ASP 파일의 첫 번째 HTML 페이지 앞에 다음 코드를 배치할 수 있습니다.
lt; p>
......
lt;/htmlgt;
4. 동일한 ASP는 다음과 같이 Request 개체의 Cookies 컬렉션을 사용합니다. /p>
lt; Response.write Request.Cookies("CookieName")gt; 완전한 예는 다음과 같습니다. 설명 쿠키:
lt; p>dim Num
Num=Request.Cookies("Visit_num")
Numgt가 0이면
Num=Num 1
Response.write "이 사이트를 " Num amp; "번 방문하셨습니다."
else
Response.write "이 사이트를 처음 방문하신 것을 환영합니다. ."
Num=1
end if
Response.Cookies("Visit_num ")=Num
gt;
이 예에서는 먼저 쿠키 변수 Visit_num을 읽어 클라이언트 컴퓨터에
쿠키 변수가 저장되어 있는지 확인합니다. 이 변수가 존재하면 사용자가 해당 페이지를 방문했다는 의미이며, 동시에 방문수를 입력
합니다.
사용자가 이 페이지를 처음 방문하는 경우 컴퓨터에는 쿠키 변수가 없으며 프로그램은
"환영합니다"라는 단어를 표시한 다음 쿠키 변수 Visit_num을 사용자의 컴퓨터에 저장합니다. 사용
>'방문 횟수' 정보는 사용자가 다음 번 페이지 방문 시 제공됩니다.
5. 쿠키 사전
때로는 더 나은 관리를 위해 페이지에 많은 쿠키 변수를 정의해야 할 수도 있습니다.
쿠키 구성 요소는 사람의 개념입니다. 이를 참조하는 구문은 다음과 같습니다:
Request.Cookies("Change name")("Subkey name")
예를 들어 다음 쿠키는 "Dictionary"라는 사전을 생성합니다. ", 세 가지 키 값이 저장됩니다:
lt;
Response.Cookie("info")("Myname")="jeff"
Response.Cookie("info")("Gender")="남성"
Response.Cookie("info")("Myheight")="172"
gt;
p>실제로 클라이언트 컴퓨터의 쿠키 사전은 문자열 형식으로 존재합니다.
info=Myname=jeffamp; Gender=maleamp; >
사용자가 "하위 키" 이름을 지정하지 않은 경우 쿠키 변수를 직접 참조하면
모든 "하위 키" 이름과 값이 포함된 문자열이 반환됩니다. 예를 들어 위의 예에는 "Mynam
e", "Gender" 및 "Myheight"라는 세 개의 "하위 키"가 포함되어 있습니다. 사용자가 "하위 키"를 지정하지 않고 Request.Co를 직접 전달하는 경우 p >
okies("info"), 다음 문자열을 얻게 됩니다:
info=Myname=jeffamp; Gender=maleamp; Myheight=172
쿠키에서 읽은 데이터는 다음 코드를 사용하여 얻을 수 있습니다:
lt; Request.Cookies의 각 쿠키에 대해
if Not cookie.HasKeys then
Response.write cookie amp; "=" amp; Request.Cookies(cookie)
Else
Request.Cookies(cookie)의 각 키에 대해 .write cookieamp;"("amp;keyamp;")"amp;"="amp
Request.Cookies(cookie)(key)
다음
종료
다음
gt
2. 세션이란 실제로 방문자가 특정 홈페이지에 접속한 후부터 떠나기까지의 시간을 의미합니다. 각
방문자는 별도의 세션을 받게 됩니다.
웹 애플리케이션에서 사용자가 애플리케이션에 액세스하면
사용자는 세션 유형 변수를 사용하여 웹 애플리케이션의 모든 페이지에서 데이터를 공유할 수 있습니다.
다른 경우; 사용자는 동시에 웹 애플리케이션에 액세스하고 자신의 세션 변수도 가지고 있지만 두 사용자는
세션 변수를 통해 정보를 공유할 수 없지만 애플리케이션 유형을 변경하면 사이트를 구현할 수 있습니다
모든 페이지에서 여러 사용자 간에 정보를 공유합니다.
1. SessionID 속성
이 속성은 현재 세션의 고유 식별자를 반환하고 각 세션에 다른 번호를 할당합니다.
개발 과정에서 사용자 컨트롤 문제를 겪은 적이 있습니다. 달성하려는 기능은 특정 웹사이트의 모듈을 대상으로 하는 것입니다. 회원이 로그인한 후 이 모듈을 보고 있으면 다른 사람이 동일한 회원 이름으로 로그인할 수 없습니다. 즉, 하나의 회원 이름을 가진 한 사람만 동시에 이 모듈을 탐색할 수 있습니다
. 멤버 이름(UserID, 고유한 것으로 가정)과 SessionID를 사용하여 컨트롤을 구현했습니다. 회원이 로그인할 때
로그인 상태를 기록하기 위해 회원에게 Session("Status")="Logged
"와 같은 세션을 제공하고 회원의 세션을 작성합니다. .SessionID 동시에 데이터베이스. 이 모듈을 검색하려면 먼저
로그인되어 있는지 확인하세요. 이미 로그인되어 있으면 SessionID가 데이터베이스에 기록된 것과 같은지 확인하세요.
다른 경우에는 액세스할 수 없습니다. 이런 방식으로 다른 사용자가 동일한 구성원 이름으로 로그인하면 새 SessionID가 데이터베이스에 기록되며 전자는 이 모듈에 액세스할 때 검사를 통과할 수 없습니다. 이는 달성됩니다
한 사람만이 회원 이름으로 특정 모듈을 동시에 탐색할 수 있습니다. 이 기능은 일부 유료 웹사이트에서 특별한 효과를 발휘하며, 한 회원의 이름이 여러 사람에게 노출되는 문제를 방지하고 회사의 이익을 보호합니다.
2. TimeOut 속성
이 속성은 사용자 Session 개체의 시간 제한을 정의하는 데 사용됩니다. 사용자가 지정된 시간 내에 웹 페이지를 새로 고치지 않으면 Session 개체가 종료됩니다. 일반적인 기본값은 20분입니다.
3. 메서드 포기
이 메서드는 Session 개체를 지울 수 있는 유일한 메서드이며 사용자의
Session을 제거하는 데 사용됩니다. 이의를 제기하고 해당 콘텐츠를 해제합니다. 예: Session.Abandon gt;
4. Session_OnStart 및 Session_OnEnd 이벤트
애플리케이션과 마찬가지로 Session_OnStart 이벤트는 객체의 루틴이 시작될 때마다 트리거됩니다. p>를 선택한 다음 Session_Onstart 이벤트 처리를 실행합니다. 즉, 서버가 응용 프로그램에서 URL에 대한 HTTP 요청을 받으면 이 이벤트가 트리거되고 Session 객체가 설정됩니다. 같은 방식으로 이
이벤트는 Global.asa 파일에서도 설정되어야 합니다.
Session.Abandon 메소드가 호출되거나 TimeOut 시간 내에 새로 고침이 없으면
Session_OnEnd 이벤트가 트리거된 다음 내부 스크립트가 실행됩니다. 세션 변수는 특정 사용자와 연결됩니다.
특정 사용자에게 할당된 세션 변수는 다른 사용자의 세션 변수와 완전히 독립적이며 서로 상호 작용하지 않습니다.
Session은 하나의 열을 적용합니다.
Application과 마찬가지로 Session 유형으로 정의된 배열은 전체 배열을 객체로만 사용할 수 있으며
사용자는 직접 사용할 수 없습니다. 변경하십시오. 세션 배열의 요소 값입니다. Session 배열을 생성하기 위해서는 먼저 일반 배열을 정의하고 각 요소에 초기값을 할당한 후 마지막으로 Session 배열로 정의해야 합니다. 예:
lt;
dim array()
array=array("jeff", "zhu", "male")
Session("info")=array
Response.write Session("info")(0) amp;"-"
Response.write Session("info" ) (1) &"-"
Response.write Session("info")(2) &"lt;brgt;"
gt;
lt;
lt;
array(0)="jun"
array(1)="li"
array(2)="female"
Session("info")=array
Response.write Session("info")(0) amp; >
Response.write Session("info")(1) amp; "-"
Response.write Session("info")(2) "lt; brgt;"< / p>
gt;
위 프로그램의 출력 결과는 다음과 같습니다:
jeff-zhu-male
_____________
jun-li-female
세션은 어떻게 작동하나요?
세션은 실제로 정보 처리를 위해 쿠키를 사용합니다(나중에 쿠키 소개 참조).
사용자가 처음 요청하면 서버는 이를 사용자의 브라우저에 생성합니다. /p>
세션이 종료됩니다. 이는 실제로 쿠키가 만료되었음을 의미합니다.
이 사용자에 대해 생성된 쿠키 이름은 ASPSESSIONID입니다. 이 쿠키의 유일한 목적은 각 사용자에게 서로 다른 신원 인증을 제공하는 것입니다.
참고: 이름이 ASPSESSIONID인 COOKIE에 대해 궁금한 경우 ServerVariab
les 컬렉션의 COOKIE 헤더를 사용하여 이 정보를 받을 수 있습니다.
lt;=Request.ServerVariables("HTTP COOKIE") gt;
한 번 이상 새로 고칠 수 있으며 표시 결과는 변경되지 않습니다. ServerVariables 컬렉션에 대해 더 자세히 알고 싶다면 14장을 읽어보세요.
세션 변수 자체는 사용자의 브라우저에 존재하지 않습니다. 그러나 ASPSESSIONID 쿠키에는
세션 변수를 사용해야 합니다.
서버는 ASPSESSIONID
쿠키를 사용하여 특정 사용자를 특정 세션 정보와 연결합니다. 쿠키가 없으면 Serve
r는 사이트를 통한 각 특정 사용자의 이동에 대한 정보를 갖지 못할 것입니다.
SessionID 변수를 사용하여 ASPSESSIONID 저장
쿠키와 ASPSESSIONID라는 쿠키에 직접 값을 할당하는 것에는 큰 차이가 있습니다. Microsoft는 해커가 SessionID의 값을 추측하고 이를 기반으로 획득해서는 안 되는 ID 또는 권한을 획득하는 것을 방지하기 위해 복잡한 수학적 알고리즘을 사용하여 SessionID를 암호화합니다.
참고: SessionID를 차단하는 방법에는 두 가지가 있습니다. 하나는 전체 사이트를 차단하는 것이고, 다른 하나는 별도의 Active Server Page를 차단하는 것입니다.
사이트 전체의 Session 동작을 차단하고 싶다면 인터넷 서비스 관리자를 이용하면 됩니다.
응용 프로그램 설정 대화 상자에서 활성 서버
페이지 테이블을 클릭하고 세션 상태 활성화 옵션을 선택 취소합니다.
특정 Active Server Page의 첫 번째 줄에 차단 문을 추가하여 이 작업을 수행할 수도 있습니다
.
lt; EnableSessionState=False gt;
Session 객체는 쿠키를 사용하기 때문에 호환성이 제한되어 있으며 일부 오래된 브라우저에서는 분명히 이것이 불가능합니다. NetScape4.0과 같은 새로운 브라우저도 쿠키를 차단하는 옵션을 제공합니다.
쿠키는 모든 브라우저에 적용할 수 없기 때문에 웹사이트 구축 시 주의가 필요합니다.
귀하의 웹사이트가 일반 대중을 대상으로 하는 경우에는 다양합니다. 다양한 사용자 시나리오를 고려해야 합니다. 그러나 실제로 대안이 있습니다. 신원 인증을 위해 쿠키를 대체하는 몇 가지 방법은 다음 장에서 논의됩니다.
참고: 현재 브라우저에서는 URL에 쿠키를 보낼지 여부가 대소문자를 구분하므로 Microsoft에서는 다음과 같이 동일한 대소문자 처리 방법을 사용하는 것이 가장 좋습니다. /를 함께 사용하면 WWW/mypage.asp와 /www/mypage.asp
확실히 브라우저 오류가 발생합니다.
윗층 형제들이 너무 현실적이네요!