HOWTO: 세션 쿠키를 사용하지 않고 값을 보존하는 방법

요약

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>

참조

Visual InterDev 및 Active Server Pages에 대한 최신 기술 자료 문서와 기타 지원 정보를 보려면 Microsoft 기술 지원 웹 사이트에서 아래 문서를 참조하십시오.



(c) Microsoft Corporation 1997, All Rights Reserved.

기고: Paul Enfield, Microsoft Corporation



속성

문서 ID: 175167 - 마지막 검토: 2006. 5. 2. - 수정: 1

피드백