Request 객체에는 5개의 컬렉션(Map과 유사), 1개의 속성, 1개의 메소드가 존재한다. (거의 컬렉션만 사용)

배   열 : 배열이름(인덱스) = 데이터  ex) arrResult(0) = "김덕영"
컬렉션 : 컬렉션이름(이름) = 데이터  ex) Request.QueryString("name") = "김덕영"

 

1. Collection

1 ) QueryString 컬렉션 : HTML Form 태그의 GET 방식 데이터를 얻는다.

i.e. http://www.dukyoung.net/test.asp?lastname=kim&firstname=dukyoung

lastName = Request.QueryString("lastname") 에는 "kim" 이라는 값이 저장되며,
firstName = Request.QueryString("firstname") 에는 "dukyoung" 이라는 값이 저장됩니다.

 

2 ) Form 컬렉션 : HTML Form 태그의 POST 방식 데이터를 얻는다.

i.e.

strName = Request.Form ("txtName")
strPassword = Request.Form ("txtPassword")

 

3 ) Cookies 컬렉션 : '서버가' 클라이언트 PC에 저장된 쿠키 정보를 읽어올 때 사용한다.

i.e. 사이트에 다시 접속했을 때 ID가 미리 입력되는 것이 어떻게 작동할까?

1 ) 클라이언트가 사이트에 접속 후 ID를 클라이언트 PC의 쿠키에 저장한다.
2 ) 나중에 클라이언트가 해당 사이트에 다시 접속할 때 서버는 클라이언트 PC에 저장된 ID를 Cookies 컬랙션을 이용해 읽어온다.
3 ) 서버가 페이지를 내려 보낼 때 이 쿠키를 통해 얻은 ID를 미리 적어 클라이언트에 응답을 보낸다.

id = Request.Cookies ("userid")

 

4 ) ClientCertificate 컬렉션

https 접속을 위해 사용자 인증 정보를 저장하는 컬렉션이다.

i.e. <%= Request.ClientCertificate("IssuerCN") %>

 

5 ) ServerVariables 컬렉션 : 클라이언트가 서버로 값을 전달할 때 자동으로 함께 전달되는 값들을 저장한다.

HTTP 헤더값, 웹 서버 자체의 몇 가지 환경 변수 값들을 저장한다.

servervariables.asp

<%@Language="VBScript" CODEPAGE="65001" %>
<%

  Response.CharSet="utf-8"
  Session.codepage="65001"
  Response.codepage="65001"
  Response.ContentType="text/html;charset=utf-8"
%>
<html>
  <head>
    <meta charset="utf-8">
    <title>ServerVariables.asp</title>
  </head>
  <body>
    <table border>
      <tr>
        <td><b>Server Variable</b></td>
        <td><b>Value</b></td>
      </tr>
      <% for each strKey in Request.ServerVariables %>
      <tr>
        <td><%=strKey%></td>
        <td><%=Request.ServerVariables(strKey)%></td>
      </tr>
      <% next %>
    </table>
  </body>
</html>

참고 : Request 객체의 ServerVariables 'Key:Value'값 모두를 하나씩 읽어올 것이기 때문에 for each in문을 사용했다. 특정 값만 가져오고 싶다면 다음과 같이 사용할 수 있다. Request.Servervariables("HTTP_USER_AGENT")

 

참고 : Request 객체의 컬렉션은 자주 사용되기 때문에 이름을 생략하고 사용할 수 있다.

Request.QueryString("count")Request("count") 로 사용할 수 있으며,
Request.Form("count")Request("count") 로 사용 가능하다.

동일한 name을 가진 것이 있다면? 우선순위는 다음과 같다.

QueryString > Form > Cookies > ClientCertificate > ServerVariables

하지만 생략하지 않고 쓰는 것이 좋다.

 

2. Property

1 ) TotalBytes 속성 : 클라이언트가 서버에 보낸 정보의 바이트의 전체 개수

전체 문자열이 몇 개인지보다는 어떤 컬렉션과 값이 넘어온지가 중요하기 때문에 거의 사용되지 않는다.

i.e.

<%
    Dim intCount
    intCount = Request.TotalBytes
%>

 

3. Method

1 ) BinaryRead(count) 메소드 : HTML Form 태그의 POST 방식 데이터를 'count 바이트'만큼의 데이터를 얻는다.

Request.Form 컬렉션와 충돌하기 때문에 동시에 사용하지 않는다.

 

+ Recent posts