HOWTO: 세션 쿠키를 사용하지 않고 값을 보존하는 방법
출처: Microsoft고객기술지원
URL: http://support.microsoft.com/kb/175167/ko
요약
HTML 양식을 사용하는 웹 사이트를 개발하는 경우 나중에 사용하기 위해 사용자가 입력한 정보를 추적해야 할 수
도 있습니다. 이 작업을 "값 보존"이라고 합니다. Active Server Pages(ASP)는 이 작업을 편리하게 수행할 수 있는
세션 변수를 제공하지만 이 변수를 사용하려면 세션 ID가 필요합니다. 본 문서에서는 세션 쿠키를 사용하지 않고 양
식 값을 저장하는 방법을 설명합니다.
추가 정보
HTML로 개발할 때 값을 보존하기 위해 일반적으로 아래 세 가지 방법을 사용합니다.
값을 양식의 숨김 필드에 저장
값을 숨김 필드에 저장하면 값은 보이지 않지만 손상되지 않습니다. 사용자가 양식을 전송하면 양식 값이 읽혀진 다음
곧바로 HTML 양식의 숨김 필드에 다시 작성됩니다. 이 값은 그 양식이 전송될 때 다른 필드와 함께 전송됩니다.
아래의 세 페이지는 이 방법에 대한 예를 보여줍니다.
<%@ LANGUAGE="VBSCRIPT" %> <!-- This is FORM1.HTM -->
<HTML> <HEAD><TITLE>FORM1.HTM</TITLE></HEAD> <BODY> <Form Action=Form2.asp Method=Post> <Input Type=Text Value="Page1 Value" Name="Value1"><P>
<Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM2.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <% Response.Cookies("Value1") = Request("Value1") ' If you wish to have the value persisted beyond the current visit, ' you must also assign an expiration date as follows: Response.Cookies("Value1").Expires = "July 31, 1998" %> <HTML> <HEAD><TITLE>FORM2.ASP</TITLE></HEAD> <BODY> <Form Action=Form3.asp Method=Post> <Input Type=Text Value="Page2 Value" Name="Value2"><P> <Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM3.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM3.ASP</TITLE></HEAD> <BODY> Value 1 = <%= Request("Value1") %><BR> Value 2 = <%= Request("Value2") %><BR> </BODY> </HTML> |
값을 URL에 추가
이 방법은 첫 번째 방법과 비슷하지만 값을 숨김 변수에 전달하지 않고 대신 URL의 끝에 추가하여 전송합니다. 이 방법의
단점은 브라우저마다 다를 수 있는 URL의 크기 제한에 있습니다. 또한, 개인 정보나 기타 정보가 다른 사용자에게 노출되
기 쉽습니다. 아래의 페이지는 이 방법에 대한 예를 보여줍니다.
<!-- This is FORM1.HTM --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM1.HTM</TITLE></HEAD> <BODY> <Form Action=Form2.asp Method=Post> <Input Type=Text Value="Page1 Value" Name="Value1"><P>
<Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM2.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM2.ASP</TITLE></HEAD> <BODY>
<Form Action="Form3.asp?value1=<%= Server.URLEncode(Request("Value1")) %>" Method=Post> <Input Type=Text Value="Page2 Value" Name="Value2"><P>
<Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM3.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM3.ASP</TITLE></HEAD> <BODY> Value 1 = <%= Request("Value1") %><BR> Value 2 = <%= Request("Value2") %><BR> </BODY> </HTML> |
자신만의 쿠키에 기록
이 방법은 정보를 다시 클라이언트 컴퓨터에 기록해야 하기 때문에 잘 사용되지 않습니다. 이 방법이 일반적인 세션 기반
변수를 사용하는 방법보다 나은 점은 브라우저를 통해 나중에 다시 방문할 수 있도록 정보를 보존한다는 것뿐입니다. 이
때문에 웹 서버에 정보를 유지할 필요성이 줄어듭니다.
<!-- This is FORM1.HTM --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM1.HTM</TITLE></HEAD> <BODY> <Form Action=Form2.asp Method=Post> <Input Type=Text Value="Page1 Value" Name="Value1"><P> <Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM2.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <% Response.Cookies("Value1") = Request("Value1") %> <HTML> <HEAD><TITLE>FORM2.ASP</TITLE></HEAD> <BODY> <Form Action=Form3.asp Method=Post> <Input Type=Text Value="Page2 Value" Name="Value2"><P> <Input Type=Submit Name=btnSubmit> </Form> </BODY> </HTML>
<!-- This is FORM3.ASP --> <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD><TITLE>FORM3.ASP</TITLE></HEAD> <BODY> Value 1 = <%= Request.Cookies("Value1") %><BR> Value 2 = <%= Request("Value2") %><BR> </BODY> </HTML> |
본 문서의 정보는 다음의 제품에 적용됩니다.
● Microsoft Active Server Pages 1.0
● Microsoft Visual Studio 97 서비스 팩 3
● Microsoft Internet Information Server 4.0
● Microsoft Internet Information Services 5.0
Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다