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
2008/02/21 15:57 2008/02/21 15:57

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다